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 и памяти.