"maxmemory-policy noeviction" изглеждаше безопасно. Без загуба на данни, нали?

Какво се случи:

  • Redis достигна maxmemory лимита
  • noeviction политика: отхвърляне на всички записи
  • Приложението не можеше да пише нови кеш записи
  • Но също не можеше да пише сесийни данни
  • Потребителите биваха изхвърлени по средата на транзакция
  • Неуспешните плащания скочиха 400%

Реалният проблем:

Съхранявахме както разходващ се кеш, ТАКА И критични сесийни данни в същата Redis инстанция със същата политика за изхвърляне.

Решението:

  • Отделни Redis инстанции за кеш срещу сесии
  • Кеш: allkeys-lru (изхвърляне на най-старите когато е пълен)
  • Сесии: noeviction + агресивни TTL-ове + мониторинг
  • Аларми когато паметта достигне 80%

Урок: Вашата политика за изхвърляне трябва да съвпада с важността на данните. Разходващ се кеш и критични сесии се нуждаят от различни стратегии.


← Назад към Научени Уроци