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

Время жизни кеша для разных данных

Вопрос

Как выбрать время жизни кеша для курсов валют, профиля пользователя и справочника городов?

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

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

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

Коротко

Правильный ответ: По скорости изменения и цене устаревания: курсы минуты, профиль до изменения с фоновой проверкой, справочник дни. Кеш это компромисс между свежестью и скоростью.

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

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

Разбор

Кеш это компромисс между свежестью и скоростью. Курсы устаревают быстро и влияют на деньги: короткий TTL и показ времени обновления. Профиль меняется редко и в основном самим пользователем: кешируем, обновляем фоном и инвалидируем при изменении. Справочник почти статичен: кешируем надолго, проверяем версию. Единый TTL либо грузит лишнее, либо показывает неактуальное.

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

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

Термины по теме