Что такое Redis?

Redis
Фото: Pexels

Redis — хранилище данных в оперативной памяти (in-memory) со структурами ключ–значение и расширенными типами: строки, списки, множества, хеши, sorted sets, streams. Используют для кэша, сессий, очередей, rate limiting и pub/sub с латентностью порядка миллисекунд.

flowchart TB
  App["Приложение"] --> Redis["Redis"]
  Redis --> RAM["Оперативная память"]
  Redis -.->|RDB / AOF| Disk["Диск"]

Данные в RAM; опционально сбрасываются на диск для восстановления после перезапуска.

Модель данных

Ключ — строка; значение зависит от команды: SET/GET для строк, HSET для объектов, LPUSH для очередей. TTL (EXPIRE) задаёт время жизни ключа — типичный паттерн для кэша API-ответов и сессий пользователей.

Персистентность

Чисто in-memory данные теряются при рестарте. Redis поддерживает RDB (снимки через интервал) и AOF (журнал каждой записи). Для кэша персистентность часто отключают; для очередей и счётчиков включают AOF с fsync по политике everysec.

Кластер и Sentinel

Redis Sentinel следит за master/replica и выполняет failover. Redis Cluster шардирует ключи по 16384 слотам на несколько узлов — горизонтальное масштабирование при объёме данных больше одной машины.

Типичные сценарии

  • Кэш результатов тяжёлых SQL-запросов (cache-aside).
  • Хранение JWT-сессий и blacklist токенов.
  • Leaderboards и счётчики через sorted sets.
  • Лёгкий message broker через Streams или Lists.

Официальный сайт: redis.io.

Redis — иллюстрация 2
Фото: Pexels
Redis — иллюстрация 3
Фото: Pexels

Частые вопросы

  • Redis — это база данных или кэш?

    Изначально in-memory store; часто используют как кэш, но с персистентностью и репликацией подходит и для очередей и сессий.

  • Чем Redis отличается от Memcached?

    Redis поддерживает сложные типы, репликацию, персистентность и pub/sub; Memcached проще и только строки, зато минималистичен для чистого кэша.

  • Нужен ли Redis при PostgreSQL?

    Не обязателен: PG справляется сам. Redis снимает нагрузку с чтений и ускоряет горячие ключи, когда латентность критична.

Не хватает деталей?

Напишите, что уточнить по теме «Redis» — это помогает улучшать материал и подсказывает, какие термины добавить дальше. Email необязателен: укажите, если хотите ответ только для вас (мы не шлём рассылки).

Поделиться