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 плюс проактивная инвалидация.
- Версионные ключи где возможно.
- Тест при конкурентных обновлениях.