Выбор ответа Middle Кеширование обновлено
Версионирование ключей кеша
Вопрос
Как работает инвалидация через версию в ключе?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Ключ включает версию; при изменении она растёт, и старые ключи не читаются. Например, catalog:v{N}:category:5, где N хранится отдельно и увеличивается при любом изменении каталога.
Варианты ответа
- Ключ включает версию; при изменении она растёт, и старые ключи не читаютсяправильный ответ
- Redis автоматически хранит несколько версий значения и отдаёт последнюю
- Версия задаёт TTL ключа: чем выше номер, тем дольше хранится значение
- Версия нужна для миграций базы и совпадает с номером последней миграции
Разбор
Например, catalog:v{N}:category:5, где N хранится отдельно и увеличивается при любом изменении каталога. Не нужно искать и удалять все связанные ключи, достаточно поменять одно число. Старые записи занимают память до истечения TTL. Redis сам версий не хранит. В Django у кеша есть параметр version и cache.incr_version.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.