Что такое Redis

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

Redis (Remote Dictionary Server) — это хранилище структур данных в памяти с открытым исходным кодом, функционирующее одновременно как распределённый кэш, персистентная база данных и брокер сообщений, обеспечивающее субмиллисекундную задержку операций чтения и записи. Что из себя представляет Redis в основе? Это однопоточный, событийно-ориентированный сервер, хранящий весь набор данных в оперативной памяти и использующий необязательные RDB-снимки и AOF-логи для сохранения данных на диск. Redis поддерживает богатый набор типов данных — строки, списки, множества, отсортированные множества, хэши, битовые карты, HyperLogLog и потоки — каждый со своим набором атомарных команд, что делает Redis более выразительным, чем традиционный кэш «ключ — значение». Высокая доступность обеспечивается через Redis Sentinel для однофрагментных развёртываний и Redis Cluster для горизонтально разделённых, оба из которых автоматизируют переключение при сбое и поддерживают доступность распределённого кэша при отказе узлов. Redis — одно из наиболее широко развёртываемых in-memory хранилищ в мире, используемое компаниями всех размеров как кэширующий слой между уровнем приложений и более медленными реляционными или документными базами данных.

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

Что такое 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)

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