Redis: кеш, сессии и очереди
Введение
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 даёт автоматический failover между мастером и репликами. Кластер размазывает данные по узлам. Начинайте с одного инстанса и Sentinel, а кластер подключайте по измеренной потребности, а не «на рост».
Автор статьи: Клавдия Кондакова