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

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

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

Этап 15 · Сохранение в AOF

Параметры AOF из флагов

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

На этом этапе вы добавите получение параметров AOF из флагов командной строки.

Переопределение значений по умолчанию флагами

На предыдущих этапах вы задали значения параметров AOF по умолчанию. Теперь вы разрешите переопределять их флагами командной строки: --dir, --appendonly, --appenddirname, --appendfilename и --appendfsync.

Если флаг передан, его значение имеет приоритет. Если флаг отсутствует, используется значение по умолчанию из предыдущих этапов.

Тесты

Тестирующая программа запустит вашу программу с частью или всеми флагами:

$ ./your_program.sh --dir <dir> --appendonly yes --appenddirname <append_dir_name> --appendfilename <append_file_name> --appendfsync everysec

Затем запросит каждый параметр через CONFIG GET:

$ redis-cli CONFIG GET dir
$ redis-cli CONFIG GET appendonly
$ redis-cli CONFIG GET appenddirname
$ redis-cli CONFIG GET appendfilename
$ redis-cli CONFIG GET appendfsync

Каждый ответ должен содержать значение соответствующего флага. Например, при запуске с --appendonly yes команда CONFIG GET appendonly должна вернуть:

*2\r\n$10\r\nappendonly\r\n$3\r\nyes\r\n

Тестирующая программа проверит, что:

  • Каждый вызов CONFIG GET возвращает значение соответствующего флага командной строки.
  • Параметры без флагов сохраняют значения по умолчанию.

Примечания

  • Логику сохранения AOF пока реализовывать не нужно. Достаточно разобрать флаги и возвращать значения через CONFIG GET.
  • Если вы уже разбираете другие флаги командной строки, например --port, используйте тот же подход.
  • Обрабатывать повторяющиеся флаги или какой-либо особый порядок флагов не требуется. Каждый флаг будет передан не более одного раза.

Проверка в вашей 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 vd9

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

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

go / ЛОКАЛЬНО

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

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

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

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