advanced
Application cache
Use in-process or distributed caches for expensive reads while controlling stampedes and stale data. Всегда проговаривайте freshness и invalidation.
Прикладной кеш — in-process (локальный) или распределённый Redis/Memcached. Ускоряет дорогие read: запросы к БД, агрегации, сессии — с latency от микросекунд до миллисекунд. Локальный быстрее, но рассинхрон между инстансами; распределённый унифицирует состояние ценой сети.
Защита от cache stampede: single-flight, вероятностное раннее истечение или coalescing запросов. Лимиты памяти и политики вытеснения (LRU, LFU).
На интервью: место Redis в архитектуре, local против distributed и mitigation stampede.
Типовые ошибки: неограниченный in-process кеш и OOM; нет TTL на горячих ключах; кеширование ошибок или null.
Чеклист:
- Local или distributed по типу данных.
- TTL, лимиты и eviction policy.
- Mitigation stampede на популярных ключах.
- Мониторинг hit rate и памяти.