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. Для проектов это обычно означает выбор между ними, а не переписывание кода.