Redis: кэш, сессии и очереди
| Введение | |
| Три работы Redis | |
| Персистентность без иллюзий | |
| Команды каждый день | |
| Кластер и Sentinel |
Введение
Redis это структуры данных в памяти со сетевым доступом: строки, хэши, списки, множества. Чтение за доли миллисекунды делает его стандартным кэшем перед SQL базой.
Три работы Redis
Кэш: складывайте результаты тяжёлых запросов с TTL и не думайте. Сессии: общее хранилище сессий для нескольких бэкендов вместо прилипчивых sticky sessions. Очереди и счётчики: атомарный INCR и блокирующие чтения из списков закрывают лимиты и фоновые задачи без брокера.
Персистентность без иллюзий
По умолчанию Redis в памяти: упал процесс — данные испарились. RDB делает периодические снимки (можно потерять минуты), AOF пишет каждую операцию (медленнее, но целы секунды). Для кэша хватит RDB, для сессий и очередей включайте AOF, иначе первый же рестарт станет инцидентом.
Команды каждый день
База дня: SET/GET с TTL через SETEX, INCR для счётчиков, LPUSH/BRPOP для очередей, SADD/SMEMBERS для множеств, HSET/HGETALL для хэшей. Ключи именуйте с пространством имён через двоеточие (app:session:123) — иначе через полгода никто не вспомнит, что лежит рядом.
Кластер и Sentinel
Один инстанс упирается в память и становится единой точкой отказа. Sentinel даёт автоматический фейловер между мастером и репликами, кластер шардирует данные по узлам. Начинайте с одного инстанса и Sentinel, кластер подключайте по измеренной необходимости, а не «на вырост».
| Базы данных | |
| Redis | |
| NoSQL databases | |
| MongoDB |