Введение в Redis

Тема дорожной карты · Redis

Redis — это хранилище структур данных в памяти с открытым исходным кодом, широко используемое как распределённый кэш, брокер сообщений и база данных реального времени, обеспечивающее субмиллисекундное время ответа в масштабе. Первоначально созданный Сальваторе Санфилиппо в 2009 году, Redis поддерживает богатый набор типов данных — строки, списки, множества, отсортированные множества, хэши, потоки — и расширяется через модули, входящие в Redis Stack. Как распределённый кэш Redis развёртывается перед реляционными базами данных для поглощения потока чтения и резкого снижения задержки запросов, что делает его одним из наиболее популярных кэширующих слоёв в современных веб-архитектурах. Redis также поддерживает необязательную персистентность через RDB-снимки и AOF-логи, репликацию и высокую доступность через Redis Sentinel или Redis Cluster. Понимание основ Redis — отправная точка для освоения вычислений в памяти и создания быстрых, отказоустойчивых бэкенд-систем.

Как это работает

Введение в Redis — in-memory key-value хранилище с опциональной персистентностью, поддерживающее богатые типы (strings, lists, hashes, sets, sorted sets, streams, geospatial, HyperLogLog, bitmaps). Однопоточный для исполнения команд (кроме I/O threads в 6+) — даёт строгую согласованность на отдельных командах и избегает сложности локов. Команды атомарны; pipeline + MULTI/EXEC батчат. Используется как кеш, очередь, pub/sub брокер, leaderboard, session store, backend для distributed lock.

Когда применять

Redis — когда нужны (а) sub-ms чтения/записи маленьких значений, (б) атомарные счётчики/локи/rate-limit, (в) ephemeral данные (TTL нативно), (г) pub/sub fan-out, (д) leaderboard через sorted sets. Не используйте Redis как primary durable store для важных данных — RAM конечен, persistence с оговорками; PostgreSQL — durable, Redis — быстр. Valkey (форк Redis) — где лицензия Redis беспокоит.

Типичные ошибки

Ловушки Введение в Redis: хранение огромных блобов в Redis (RAM-bloat — используйте object storage); Redis как единственная копия важного state (крэш без persistence = полная потеря); пароли в Redis без TLS или auth (requirepass); не выставлен maxmemory + eviction policy (OOM убивает процесс). Опасные команды (FLUSHALL, KEYS, DEBUG) — переименовать или отключить в production.

Связанные понятия

Полезные ресурсы

Проверить знания (1)

Загрузка вопросов…