Установка Redis и первое подключение

Прежде чем разбирать структуры данных, нужно поднять Redis и подключиться к нему. Это пять минут.

Лучший способ понять инструмент — потрогать его руками. Поднимите Redis локально и выполните первую команду уже сегодня.

Redis устанавливается несколькими способами. Для обучения и разработки проще всего Docker — один контейнер, ничего не засоряет систему. Для локальной работы подойдёт и пакетный менеджер.

Запуск через Docker

Если у вас установлен Docker, поднять Redis — одна команда:

# Запустить Redis 7 в фоне на стандартном порту 6379
docker run -d --name my-redis -p 6379:6379 redis:7

# Проверить, что контейнер работает
docker ps

# Зайти внутрь и открыть redis-cli
docker exec -it my-redis redis-cli

Установка нативно

# macOS (Homebrew)
brew install redis
brew services start redis

# Ubuntu / Debian
sudo apt update
sudo apt install redis-server
sudo systemctl start redis-server

# Проверка
redis-cli ping

Если в ответ на redis-cli ping сервер сказал PONG — всё работает.

Первое подключение и команды

redis-cli — это интерактивная консоль. Внутри можно отправлять команды прямо как текст:

127.0.0.1:6379> SET greeting "Привет, Redis!"
OK
127.0.0.1:6379> GET greeting
"Привет, Redis!"
127.0.0.1:6379> EXISTS greeting
(integer) 1
127.0.0.1:6379> DEL greeting
(integer) 1
127.0.0.1:6379> GET greeting
(nil)

Команды Redis не чувствительны к регистру (set и SET работают одинаково), но по традиции их пишут заглавными. Ключи и значения — чувствительны к регистру.

Архитектура клиент-сервер

   redis-cli            сеть TCP           redis-server
   (клиент)        -------------------->   (порт 6379)
                   SET greeting "..."          |
                                               | RAM
                   <--------------------    [структуры]
                          OK

Redis — это сетевой сервер. Клиент (CLI, ваше приложение, библиотека) шлёт текстовые команды по протоколу RESP, сервер их обрабатывает и отвечает. Поэтому к одному Redis могут одновременно подключаться сотни приложений.

Как работает под капотом

Клиент и сервер общаются по протоколу RESP (REdis Serialization Protocol) — простой текстовый протокол поверх TCP. Когда вы пишете SET greeting "Привет", CLI кодирует это в RESP-формат и отправляет байты серверу. Сервер парсит команду, выполняет и отвечает. Из-за простоты протокола клиенты Redis есть практически для любого языка.

Частые ошибки

  • Открыть Redis наружу без пароля. По умолчанию Redis слушает локально, но если выставить его в интернет без requirepass — это дыра в безопасности.
  • Забыть, что порт 6379 уже занят другим инстансом — Docker откажется стартовать.
  • Путать БД-индексы. Redis имеет 16 логических БД (0–15), переключение через SELECT. Подключились к БД 1, а данные искали в БД 0.

Best practices

  • Для разработки используйте Docker — изолированно и воспроизводимо.
  • На любом окружении, доступном по сети, ставьте пароль через requirepass.
  • Освойте redis-cli: он покажет вам ровно то, что происходит, без слоёв абстракции вашего приложения.

Итог: Redis ставится за минуты — через Docker или пакетный менеджер. redis-cli — ваш главный инструмент исследования. Команды отправляются как текст по протоколу RESP. Теперь у вас есть рабочий Redis, и можно переходить к данным.

Полезные команды redis-cli для исследования

Помимо SET/GET, в redis-cli есть команды, которые помогают понять, что вообще происходит внутри сервера. Их стоит знать с самого начала:

DBSIZE              # сколько ключей в текущей БД
TYPE mykey          # какого типа значение (string, list, hash...)
TTL mykey           # сколько секунд осталось ключу
INFO server         # версия, режим, аптайм
INFO memory         # потребление памяти
MONITOR             # поток всех команд в реальном времени (только для отладки!)
FLUSHDB             # очистить текущую БД (осторожно!)

MONITOR показывает каждую команду, которую сервер обрабатывает прямо сейчас — это бесценно при отладке «что моё приложение на самом деле шлёт в Redis». Но на проде он замедляет сервер, поэтому только для разработки.

Ещё один режим запуска redis-cli — выполнить одну команду из шелла, не входя в интерактив: redis-cli SET key value. Это удобно в скриптах. А флаг -n 1 подключит к логической БД номер 1 вместо нулевой. Освоив эти команды, вы перестанете воспринимать Redis как чёрный ящик и будете видеть его состояние напрямую.

Проверьте себя
1. Какой ответ возвращает Redis на команду PING, если он работает?
AOK
BPONG
CALIVE
D(nil)
2. Что произойдёт при выполнении GET по несуществующему ключу?
ARedis вернёт ошибку и разорвёт соединение
BRedis вернёт пустую строку
CRedis вернёт (nil)
DRedis создаст ключ с пустым значением