Проектная лаборатория
Собственный Redis
Этап 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 go2. Откройте папку в IDE
cd ./my-redisРеализуйте требования этапа в созданном проекте.
Запустите из папки проекта
node '/opt/graphlms/tools/project-lab/cli.mjs' submit --stage bw1Запускайте submit из папки проекта. Это локальные проверки, а не сертификаты или результаты аккаунта CodeCrafters.
Результат проверки
go / ЛОКАЛЬНОПодключение к локальной проверке…
Здесь появится результат
Запустите submit в терминале. Страница обновляет результаты каждые 8 секунд.