Проектная лаборатория

Собственный Redis

0 / 124этапов пройдено

Этап 24 · Репликация

Настройка порта сервера

Русский перевод заданий CodeCrafters. Примеры подготовлены для Go. Выбор языка меняет команды и результаты, но не текст задания.

На этом этапе вы добавите запуск сервера Redis на произвольном порту.

Репликация с ведущим и ведомыми

Репликация с ведущим и ведомыми — схема, в которой один сервер («ведущий», master) обрабатывает все операции записи, а один или несколько серверов («реплики») поддерживают копии его данных. Когда ведущий меняет данные, он автоматически передаёт изменения репликам. Это обеспечивает избыточность данных и повышает производительность чтения.

Поддержка произвольного порта

Для репликации нужно одновременно запускать несколько серверов Redis, каждому из которых нужен собственный порт. Поэтому сервер должен уметь запускаться на порту, отличном от стандартного 6379.

Флаг --port передаёт номер порта серверу Redis:

./your_program.sh --port <port_number>

Сервер разбирает аргумент и запускает TCP-сервер на указанном порту.

Если флаг --port не задан, используется порт 6379.

Тесты

Тестирующая программа запустит вашу программу так:

./your_program.sh --port 6380

Затем попытается подключиться к TCP-серверу на указанном порту. Если подключение успешно, этап пройден.

Примечания

  • Тест передаст случайный номер порта, поэтому нельзя жёстко задать номер из примера.
  • Если репозиторий создан до 5 октября 2023 года, скрипт ./your_program.sh может не передавать аргументы программе. Исправьте ./your_program.sh; подробности — в этом PR.

Проверка в вашей IDE

Нужны Node.js, Git, Go 1.24+ для тестеров и инструменты выбранного языка. Тестеры загружаются и запускаются локально; отдельным проектам нужны дополнительные системные зависимости.

Настройка проекта и IDE

1. Создайте проект один раз

node '/opt/graphlms/tools/project-lab/cli.mjs' init redis ./my-redis --language go

2. Откройте папку в IDE

cd ./my-redis

Реализуйте требования этапа в созданном проекте.

Запустите из папки проекта

node '/opt/graphlms/tools/project-lab/cli.mjs' submit --stage bw1

Запускайте submit из папки проекта. Это локальные проверки, а не сертификаты или результаты аккаунта CodeCrafters.

Результат проверки

go / ЛОКАЛЬНО

Подключение к локальной проверке…

Здесь появится результат

Запустите submit в терминале. Страница обновляет результаты каждые 8 секунд.

GraphLMS — инженерная лаборатория роста