Проект

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

Команды Redis, структуры данных, хранение и репликация.

Основа
0 из 7
Всего
0 из 124

Расширение «Битовые карты», этап 2 из 9. Легко

Получение бита

На этом этапе вы добавите чтение бита из битовой карты командой GETBIT.

Команда GETBIT

Команда GETBIT возвращает бит по заданному смещению offset в битовой карте.

Если ключ не существует, Redis считает карту полностью нулевой и возвращает 0 для любого смещения.

Пример:

> SETBIT bit_key 2 1
(integer) 0
 
> GETBIT bit_key 2
(integer) 1
> GETBIT bit_key 3
(integer) 0
> GETBIT new_key 2
(integer) 0

Проверки

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

$ ./your_program.sh

Затем создаст битовую карту командой SETBIT.

$ redis-cli SETBIT bit_key 2 1

Далее отправит команду GETBIT для установленного бита.

$ redis-cli GETBIT bit_key 2

Ожидаемый ответ — :1\r\n, то есть 1 в формате целого числа RESP.

Также будет отправлена команда GETBIT для неустановленного бита того же ключа.

$ redis-cli GETBIT bit_key 3

Ожидаемый ответ — :0\r\n.

Тестирующая система также отправит GETBIT для несуществующего ключа.

$ redis-cli GETBIT new_key 2

В этом случае программа тоже должна ответить :0\r\n.

Примечания

  • Вызов GETBIT со смещением за пределами текущей строки должен возвращать 0.

Перевод задания CodeCrafters. Примеры подготовлены для Go.

Проверить этап

Проверка идёт на вашем компьютере: CLI скачивает официальный тестер этапа и запускает его против вашего кода. Код на сервер не отправляется.

Проект ещё не создан?

1. Скачайте CLI

graphlms-project-lab.tar.gz или .zip. Нужны Node.js 18+, Git и Go (официальные тестеры написаны на Go), а также инструменты выбранного языка. macOS и Linux, на Windows — WSL.

2. Распакуйте архив

tar -xzf graphlms-project-lab.tar.gz

3. Создайте проект рядом с ним

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

4. Откройте папку проекта в редакторе

cd my-redis

Из папки проекта запустите проверку

node ../graphlms-project-lab/cli.mjs test --stage qj1

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

Получение бита: Собственный Redis · GraphLMS