Стратегия кеширования данных API
Вопрос
Как вы решаете, какие ответы API кешировать, где и на сколько?
Попробуйте сами
Ответьте вслух за 2 минуты, как на собесе. Потом сверьтесь с тезисами: что прозвучало, а что нет.
Показать ответ и разбор
Коротко
Что должно прозвучать в ответе
Классификация данных по свежести и цене устаревания
Где хранить: память, диск, база, HTTP-кеш
Стратегии чтения: cache first, network first, SWR
Инвалидация: TTL, версии, события (push, действия пользователя)
Персональные данные в скоупе сессии, очистка при выходе
Метрики: hit rate, трафик, время до контента
Что могут спросить следом
- Как вы узнаёте, что кеш устарел, без опроса сервера?
- Как кеш влияет на тестирование?
Разбор
Сначала делю данные по двум осям: как быстро они меняются и чем опасно показать устаревшее. Справочники кеширую надолго в базе и проверяю версию. Ленты и каталоги показываю по stale-while-revalidate. Деньги и остатки network first, а если сети нет, показываю кеш с явным временем обновления. Секреты и одноразовые коды не кеширую. Инвалидация по TTL плюс события: действие пользователя (изменил профиль, сбрасываю его кеш), тихий push от сервера об изменениях. Пользовательские данные живут в кеше сессии и стираются при выходе. Эффект меряю: доля попаданий, трафик, время до первого контента на экране.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.
Предыдущий вопрос
Пагинация ленты: курсор или номер страницы
Следующий вопрос
Как устроить загрузку и кеш картинок