Весь каталог из 60 тысяч товаров кэшируется одним ключом, и Redis тормозит
Метод «получить весь каталог» кэширует список 60 тысяч товаров одним значением — около 40 МБ JSON. Каждое истечение записи сопровождается всплеском задержки у всех клиентов Redis, сетевой трафик между сервисом и Redis достигает сотен мегабит, а сервис тратит заметное время на десериализацию при каждом обращении.
Как перестроить кэширование?
- Кэшировать данные частями, которые реально запрашиваются: товар, страница, категория
- Сжать значение перед записью, оставив один ключ
- Увеличить TTL, чтобы большое значение перезаписывалось реже
- Перенести кэш каталога в отдельный Redis с большим объёмом памяти
