Ответ
Redis (Remote Dictionary Server) — это высокопроизводительное хранилище данных типа «ключ-значение» (key-value store), работающее в оперативной памяти (in-memory). Это NoSQL база данных, поддерживающая различные структуры данных.
Ключевые особенности:
- In-memory хранение: Обеспечивает чрезвычайно высокую скорость операций чтения/записи (микросекунды).
- Структуры данных: Поддерживает не только строки, но и списки, множества, хеши, отсортированные множества, битовые массивы.
- Персистентность: Может асинхронно сохранять данные на диск (снимки RDB или журнал AOF).
- Срок жизни (TTL): Можно задать время автоматического удаления ключей.
- Масштабируемость: Поддержка репликации (master-slave) и кластеризации.
Основные сценарии использования:
- Кэширование: Самый частый случай. Хранение результатов тяжелых запросов к БД или вычислений.
- Очереди сообщений: Использование структур List или Stream для организации брокера сообщений.
- Хранение сессий: Быстрый доступ к данным сессии пользователя.
- Счетчики и рейтинги: Благодаря атомарным операциям INCR.
Пример на Python (кэширование):
import redis
# Подключение
r = redis.Redis(host='localhost', port=6379, db=0)
# Запись значения с TTL (30 секунд)
r.setex('user:100:profile', 30, '{"name": "Alice"}')
# Чтение значения
profile = r.get('user:100:profile')
print(profile) # b'{"name": "Alice"}'