Стратегии кеширования
Вопрос
Какие стратегии кеширования вы знаете и как выбрать подходящую?
Попробуйте сами
Ответьте вслух за 2 минуты, как на собесе. Потом сверьтесь с тезисами: что прозвучало, а что нет.
Показать ответ и разбор
Коротко
Что должно прозвучать в ответе
Cache-aside: приложение само читает и заполняет кеш, самый частый вариант
Read-through: кеш-слой сам загружает данные при промахе
Write-through: синхронная запись в кеш и БД, свежий кеш, медленнее запись
Write-behind: асинхронная запись в БД, быстро, риск потери
Выбор зависит от соотношения чтения и записи и цены устаревших данных
Что могут спросить следом
- Почему при обновлении ключ лучше удалять?
- Где write-behind оправдан?
Разбор
Основная стратегия cache-aside: читаем кеш, при промахе идём в БД и кладём результат с TTL, при изменении пишем в БД и удаляем ключ. Read-through то же самое, но логику загрузки берёт на себя библиотека или кеш. Write-through пишет и в кеш, и в БД синхронно: кеш свежий, но запись дороже. Write-behind подтверждает запись после кеша и сбрасывает в БД пачками: очень быстро, подходит для счётчиков и метрик, где потеря части не критична, но не для денег. Для большинства продуктовых данных хватает cache-aside с TTL и удалением ключа при записи.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.