Выбор ответа Senior Кеширование обновлено
Время жизни кеша для разных данных
Вопрос
Как выбрать время жизни кеша для курсов валют, профиля пользователя и справочника городов?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: По скорости изменения и цене устаревания: курсы минуты, профиль до изменения с фоновой проверкой, справочник дни. Кеш это компромисс между свежестью и скоростью.
Варианты ответа
- Одинаковый TTL 5 минут для всех данных: так проще, а разница свежести пользователю незаметна
- Не кешировать ничего из трёх: курсы, профиль и справочник должны приходить свежими, иначе пользователь увидит неверное
- По скорости изменения и цене устаревания: курсы минуты, профиль до изменения с фоновой проверкой, справочник дниправильный ответ
- Кешировать всё навсегда и обновлять только с выходом новой версии приложения в сторе
Разбор
Кеш это компромисс между свежестью и скоростью. Курсы устаревают быстро и влияют на деньги: короткий TTL и показ времени обновления. Профиль меняется редко и в основном самим пользователем: кешируем, обновляем фоном и инвалидируем при изменении. Справочник почти статичен: кешируем надолго, проверяем версию. Единый TTL либо грузит лишнее, либо показывает неактуальное.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.