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

Джиттер TTL

Вопрос

Зачем к TTL ключей добавляют случайную составляющую (например, 300 ± 30 секунд)?

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

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

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

Коротко

Правильный ответ: Чтобы одновременно созданные ключи не истекли разом и не дали пик на базу. После деплоя или прогрева тысячи ключей могут создаться в одну секунду и с одинаковым TTL истечь тоже в одну секунду, вызвав волну промахов.

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

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

Разбор

После деплоя или прогрева тысячи ключей могут создаться в одну секунду и с одинаковым TTL истечь тоже в одну секунду, вызвав волну промахов. Случайный разброс размазывает истечения во времени. На память и свежесть данных джиттер почти не влияет, а Redis его не требует.

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

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