Redis і сховища «ключ–значення» в оперативній пам’яті
Коротко: Redis зберігає дані як пари «ключ–значення» в оперативній пам’яті й тому відповідає за частки мілісекунди; типовий для кешів, сеансів і лічильників.
Докладніше: Сховище «ключ–значення» — найпростіша форма бази даних: у ключа є значення. Redis тримає дані в RAM (за бажанням із резервуванням на диск) і, крім рядків, пропонує списки, множини, геші, впорядковані множини та потоки. Дуже швидко, але пам’ять обмежена й дорожча за диски.
Подробиці
Типове застосування
- Кеш: зберігати результати дорогих запитів до бази даних від секунд до годин.
- Сеанси: стан входу користувачів.
- Лічильники та обмеження частоти запитів:
INCRатомарно рахує звернення за часове вікно. - Таблиці лідерів: впорядковані множини (
ZADD,ZRANGE). - Черги та pub/sub: просте розподілення повідомлень.
- Розподілені блокування.
Приклади
SET user:42:name "Mia" EX 3600 # спливає через 1 годину
GET user:42:name
INCR views:homepage
LPUSH tasks "send-mail"
ZADD leaderboard 150 "Mia"
EX задає строк дії (TTL), після якого ключ автоматично зникає; ідеально для кешів.
Персистентність і експлуатація
Без заходів дані втрачаються під час перезапуску. Redis може записувати знімки (RDB) або журнал лише додавання (AOF). Для відмовостійкості використовують реплікацію та Redis Sentinel/Cluster. Як кеш втрата даних зазвичай допустима; як єдине джерело даних Redis підходить рідко. Керовані сервіси (наприклад, Upstash, ElastiCache) беруть експлуатацію на себе.
Зауваження
Обирайте змістовні імена ключів (область:id:поле), завжди задавайте строки дії для даних кешу, враховуйте інвалідацію кешу та захищайте сервер (пароль, не відкривайте в інтернет). Альтернативи: Memcached (лише прості значення), Valkey (безкоштовний форк Redis), Dragonfly.
Див. також: Upstash Redis, Стратегії кешування, Обмеження частоти запитів, Бази даних NoSQL