advanced
Cache-aside
Let the application read-through on miss and write the cache after database reads, accepting miss and stampede handling work. Всегда проговаривайте freshness и invalidation.
Cache-aside: приложение само наполняет кеш — при miss читает БД и кладёт в кеш; при write обновляет БД и удаляет или обновляет кеш. Гибко и с любым store, но нужна защита miss и stampede.
Писатели должны инвалидировать или обновлять кеш, иначе долгое окно несогласованности. Read replica плюс cache-aside — ясность, откуда наполнять кеш после write.
На интервью: последовательности read miss и write update, риск stampede на горячих ключах, сравнение с write-through.
Типовые ошибки: удаление кеша до commit в БД; нет инвалидации при delete; наполнение из устаревшей реплики.
Компромисс — гибкость против сложности: знайте, когда достаточно более простого пути.
Чеклист:
- Путь загрузки при read miss.
- Инвалидация или update кеша на каждую запись.
- Защита stampede на горячих ключах.
- Источник кеша в духе consistency.