Истёк один ключ с тяжёлым отчётом, и база легла под сотнями одинаковых запросов
Главная страница показывает агрегированную статистику, её пересчёт — тяжёлый запрос на 8 секунд. Результат кэшируется на 5 минут. В пиковый час ключ истёк, и за эти 8 секунд пришли 600 запросов главной. Каждый увидел промах и запустил пересчёт. База не выдержала.
Какое решение закрывает именно эту проблему?
- Пересчитывает один процесс под блокировкой, остальные отдают старое значение
- Увеличить TTL ключа с 5 минут до часа
- Добавить индекс в таблицу, из которой строится статистика
- Держать в Redis две копии ключа с разными именами
