Ответ вслух Senior Кеширование обновлено

Стратегия кеширования данных API

Вопрос

Как вы решаете, какие ответы API кешировать, где и на сколько?

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

Ответьте вслух за 2 минуты, как на собесе. Потом сверьтесь с тезисами: что прозвучало, а что нет.

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

Коротко

Сначала делю данные по двум осям: как быстро они меняются и чем опасно показать устаревшее. Справочники кеширую надолго в базе и проверяю версию.

Что должно прозвучать в ответе

  • Классификация данных по свежести и цене устаревания

  • Где хранить: память, диск, база, HTTP-кеш

  • Стратегии чтения: cache first, network first, SWR

  • Инвалидация: TTL, версии, события (push, действия пользователя)

  • Персональные данные в скоупе сессии, очистка при выходе

  • Метрики: hit rate, трафик, время до контента

Что могут спросить следом

  • Как вы узнаёте, что кеш устарел, без опроса сервера?
  • Как кеш влияет на тестирование?

Разбор

Сначала делю данные по двум осям: как быстро они меняются и чем опасно показать устаревшее. Справочники кеширую надолго в базе и проверяю версию. Ленты и каталоги показываю по stale-while-revalidate. Деньги и остатки network first, а если сети нет, показываю кеш с явным временем обновления. Секреты и одноразовые коды не кеширую. Инвалидация по TTL плюс события: действие пользователя (изменил профиль, сбрасываю его кеш), тихий push от сервера об изменениях. Пользовательские данные живут в кеше сессии и стираются при выходе. Эффект меряю: доля попаданий, трафик, время до первого контента на экране.

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

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

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