Redis — быстрое хранилище данных в памяти, которое часто используют как кэш, хранилище сессий, счётчиков, временных данных и основу для очередей. Помимо пар ключ—значение Redis поддерживает строки, списки, множества, упорядоченные множества, хеши, потоки сообщений и другие структуры.
Что такое Redis? Какие структуры данных он поддерживает?
Подробный ответ
Что такое Redis
Redis — хранилище данных, которое в основном работает в оперативной памяти. Благодаря этому операции обычно выполняются очень быстро. Redis часто используют не вместо основной базы данных, а рядом с ней: для кэширования, хранения сессий, ограничений частоты запросов, временных ключей и очередей задач.
Основные структуры данных
| Структура | Назначение | Пример применения |
|---|---|---|
| Строка | Обычное значение по ключу | Кэш ответа, счётчик, сессия |
| Хеш | Набор полей внутри одного ключа | Профиль пользователя |
| Список | Упорядоченная последовательность | Простая очередь задач |
| Множество | Уникальные неупорядоченные значения | Теги, роли, уникальные посетители |
| Упорядоченное множество | Уникальные значения с числовым рейтингом | Таблица лидеров |
| Поток | Последовательность сообщений | Передача событий между сервисами |
| Битовая карта | Компактное хранение флагов | Учёт активности по дням |
| HyperLogLog | Приближённый подсчёт уникальных значений | Оценка числа уникальных посетителей |
Примеры команд
SET user:42:name "Alex"
GET user:42:name
HSET user:42 name "Alex" role "admin"
HGETALL user:42
LPUSH tasks "send_email"
RPOP tasks
SADD article:42:tags python redis
SMEMBERS article:42:tags
ZADD leaderboard 120 alex
ZRANGE leaderboard 0 -1 WITHSCORESСохранность данных
Хотя Redis работает в памяти, он может сохранять данные на диск через снимки или журнал операций. Однако режим хранения, репликацию, ограничение памяти и правила удаления ключей нужно настраивать осознанно, особенно если Redis используется для важных данных.
Как ответить на собеседовании
Redis — быстрое хранилище данных в памяти, которое часто используют для кэша, сессий, счётчиков и очередей. Он поддерживает не только строки, но и хеши, списки, множества, упорядоченные множества, потоки сообщений и другие структуры. Выбор структуры зависит от задачи: например, хеш — для полей объекта, список — для простой очереди, а упорядоченное множество — для рейтинга.
Оцени свой прогресс