advanced

Cache invalidation

Connect writes to affected cached reads through keys, tags, events, TTLs, and operational purge paths. Всегда проговаривайте freshness и invalidation.

Инвалидация кеша связывает записи с устаревшими read через TTL, явное удаление, версионные ключи, purge по тегам или событийную инвалидацию. Универсальной стратегии нет — короткий TTL как страховка плюс проактивная инвалидация по зависимостям.

Версионные ключи с updated_at или hash контента дают miss старых записей после write. Теги связывают ключи для массового purge при смене категории.

На интервью: инвалидация при «пользователь сменил фото» через CDN, Redis и клиентский кеш.

Типовые ошибки: слишком мало (stale UI) или слишком много (thundering herd на origin); гонка write и invalidation; забытый edge cache.

Компромисс — гибкость против сложности: знайте, когда достаточно более простого пути.

Чеклист:

  • Каждая запись → затронутые слои кеша.
  • TTL плюс проактивная инвалидация.
  • Версионные ключи где возможно.
  • Тест при конкурентных обновлениях.