Redis

Сверхбыстрое хранилище данных в оперативной памяти: используется как кэш, хранилище сессий, счетчиков и очередей.

Redis — хранилище данных, которое держит все в оперативной памяти, поэтому отвечает за доли миллисекунды. Данные хранятся по ключам, как в словаре: по ключу session:7f3a лежит сессия пользователя, по ключу rate:client:42 — счетчик его запросов. Redis создал Сальваторе Санфилиппо в 2009 году, и сегодня он стоит почти в каждой крупной веб-системе рядом с основной базой данных.

Не просто «ключ — значение»

Значениями могут быть не только строки, но и готовые структуры данных, с которыми Redis работает сам:

  • Строки и числа — с атомарным увеличением, удобно для счетчиков;
  • Списки — для простых очередей задач;
  • Множества и упорядоченные множества — для уникальных значений и рейтингов;
  • Хеши — для объектов с полями, например профиля;
  • Потоки (streams) — журнал событий с группами читателей.
# Команды Redis (redis-cli)
SET session:7f3a "{\"user\": 42}" EX 1800
INCR rate:client:42
EXPIRE rate:client:42 60

Первая команда сохраняет сессию на 30 минут, две другие считают запросы клиента за минуту — так ограничивают частоту обращений к API.

Где применяется

  • Кэширование — результаты тяжелых запросов к базе, готовые фрагменты страниц, ответы внешних сервисов.
  • Сессии — общие для всех серверов за балансировщиком нагрузки, поэтому пользователь не «вылетает», попав на другой сервер.
  • Ограничение частоты запросов и защита от перебора паролей.
  • Очереди и уведомления — фоновые задачи и обмен сообщениями между сервисами. Для сложной маршрутизации и гарантированной доставки чаще берут специализированный брокер, например RabbitMQ.
  • Рейтинги и счетчики в реальном времени.

Надежность

Данные в памяти пропадут при перезапуске, если не включить сохранение на диск: снимки (RDB) раз в несколько минут или журнал команд (AOF). Для отказоустойчивости используют репликацию и автоматическое переключение (Redis Sentinel) или кластер. Важное правило: Redis — дополнение к основной базе, а не замена ей. Все, что нельзя потерять, должно храниться в PostgreSQL или другой надежной СУБД.

Лицензия

В 2024 году Redis сменил открытую лицензию на более ограничительную. В ответ сообщество под крылом Linux Foundation создало полностью совместимый форк Valkey, который многие облачные платформы используют вместо Redis. В 2025 году, начиная с версии 8, Redis снова стал доступен и под открытой лицензией AGPL. Для проектов это обычно означает выбор между ними, а не переписывание кода.