Проверяет понимание, как и зачем снижать нагрузку на хранилище данных.
Кэширование стоит применять, когда одни и те же данные часто запрашиваются и редко меняются: результат дорогих вычислений, запросы к БД или внешним сервисам. Это снижает задержки, уменьшает нагрузку на бэкенд и позволяет выдерживать пиковые нагрузки. Нужно учитывать время жизни (TTL) и политику инвалидации, чтобы не выдавать устаревшие данные.
Горячие данные:
Часто запрашиваемые записи из БД (справочники, настройки).
Результаты вычислений:
Сложные агрегации, аналитические запросы, расчёты маршрутов.
Внешние API:
Ответы от сервисов третьих сторон (курсы валют, геокодирование).
Типы кэширования:
In-application: локальный (например, Caffeine) для мгновенного доступа.
Distributed: Redis/Memcached для общедоступного кэша между инстансами.
Политика инвалидации:
TTL, событийная инвалидация при изменении источника.
Стратегии «cache aside», «write-through», «write-back».