Что такое кэшируемость

«Что такое кэшируемость» — вопрос из категории Архитектура, который задают на 27% собеседований Системный Аналитик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Кэшируемость — это свойство системы или данных, позволяющее временно сохранять их в кэше для ускорения доступа и снижения нагрузки на основной источник.

Ключевые аспекты:

  • Валидность — кэш должен обновляться при изменении данных (TTL, ETag, Last-Modified).
  • Идемпотентность — запросы с одинаковыми параметрами возвращают одинаковый результат.
  • Скорость — кэш должен быть быстрее основного хранилища (RAM vs DB/disk).

Пример HTTP-заголовков для кэширования:

Cache-Control: max-age=3600, public
ETag: "abc123"

Когда не кэшировать:

  • Динамические/персональные данные (например, баланс счёта).
  • Критичные к актуальности (например, транзакции).

Оптимальная стратегия зависит от use-case (LRU, FIFO, write-through и т.д.).