Выбор ответа Middle Кеширование обновлено
Запросы к несуществующим ключам
Вопрос
Бот перебирает несуществующие id товаров. Каждый запрос промахивается мимо кеша и идёт в БД. Что поможет?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Кешировать «не найдено» коротко или фильтр Блума. Это cache penetration: несуществующих данных нет в кеше по определению.
Варианты ответа
- Увеличить TTL существующих ключей до суток
- Кешировать «не найдено» коротко или фильтр Блумаправильный ответ
- Перейти на write-through, чтобы кеш был полным
- Включить LRU вместо LFU, чтобы промахов было меньше
Разбор
Это cache penetration: несуществующих данных нет в кеше по определению. Кеширование пустого ответа на минуту или фильтр Блума (быстро отвечает «точно нет») отсекают такие запросы до БД. Плюс rate limiting для бота. TTL существующих ключей, стратегия записи и политика вытеснения не влияют на ключи, которых нет.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.