Стратегии
- TTL (Time To Live) — кэш живёт N секунд, затем автоматически удаляется. Просто, но данные могут быть устаревшими до истечения TTL
- Event-based — при изменении данных явно удаляем или обновляем соответствующий кэш. Точно, но сложнее реализовать
- Write-through — запись одновременно в кэш и БД. Всегда свежий кэш ценой дополнительной записи
- Cache-aside — читаем из кэша; если нет — читаем из БД и кешируем. Наиболее распространённая стратегия
Сложность
Проблемы: cache stampede (много запросов одновременно попадают в БД после истечения TTL), stale reads, сложная инвалидация при связанных данных.