Redis без ядерного flush: точечно и по-взрослому
На PDP кеш в Redis собрали по namespace-паттерну entity:id:*, чтобы данные одной сущности жили в своём «кармане». При изменениях инвалидация идёт точечно через scan_iter, без полного flush.

На PDP мы собрали кеш в Redis по namespace-паттерну entity:id:*. Идея простая: данные одной сущности живут в своём “кармане”, а не валятся в общий котёл.
Когда меняется конкретная сущность, мы не жмём красную кнопку flush (это уже уровень “сломали прод на ровном месте”), а делаем гранулярную инвалидацию через scan_iter — находим и сбрасываем только связанный кеш.
Почему это важно? На масштабе 4000+ помещений и десятков замечаний на каждое полный сброс кеша был бы катастрофой: всплеск запросов в БД, деградация ответа, и привет, “почему всё тормозит?”. А так — обновляется только то, что реально изменилось.
На фоне вечного тренда на оптимизацию latency и cost это прям must-have: меньше шума, меньше нагрузки, больше контроля.