Выбор ответа Middle Кеширование обновлено

Версионирование ключей кеша

Вопрос

Как работает инвалидация через версию в ключе?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Ключ включает версию; при изменении она растёт, и старые ключи не читаются. Например, catalog:v{N}:category:5, где N хранится отдельно и увеличивается при любом изменении каталога.

Варианты ответа

  1. Ключ включает версию; при изменении она растёт, и старые ключи не читаютсяправильный ответ
  2. Redis автоматически хранит несколько версий значения и отдаёт последнюю
  3. Версия задаёт TTL ключа: чем выше номер, тем дольше хранится значение
  4. Версия нужна для миграций базы и совпадает с номером последней миграции

Разбор

Например, catalog:v{N}:category:5, где N хранится отдельно и увеличивается при любом изменении каталога. Не нужно искать и удалять все связанные ключи, достаточно поменять одно число. Старые записи занимают память до истечения TTL. Redis сам версий не хранит. В Django у кеша есть параметр version и cache.incr_version.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.