Какие знаешь стратегии решения проблемы переполнения в Redis

«Какие знаешь стратегии решения проблемы переполнения в Redis» — вопрос из категории Базы данных, который задают на 23% собеседований Golang Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

  1. TTL (Time-To-Live) — устанавливай срок жизни ключей автоматически через EXPIRE или SETEX.
  2. LRU/LFU Eviction — настрой политики вытеснения (maxmemory-policy в конфиге):
    • allkeys-lru / volatile-lru
    • allkeys-lfu / volatile-lfu
  3. Шардинг — распределяй данные по нескольким инстансам (например, через redis-cluster).
  4. Сжатие данных — уменьшай размер хранимых значений (например, msgpack вместо JSON).
  5. Удаление устаревших данных — периодически чисти через SCAN + DEL или скрипты Lua.

Пример настройки maxmemory-policy:

CONFIG SET maxmemory 1gb
CONFIG SET maxmemory-policy allkeys-lru