Ответ
Кэш — это промежуточный буфер (хранилище) с быстрым доступом, в котором сохраняются часто используемые или недавно запрошенные данные. Его основная цель — уменьшение задержек и снижение нагрузки на более медленные источники данных (базы данных, диски, удаленные API).
Принцип работы: При первом запросе данные извлекаются из медленного источника и сохраняются в кэше. Последующие запросы обслуживаются из быстрого кэша, пока данные не устареют или не будут вытеснены.
Примеры использования в разработке и тестировании:
- Веб-приложения: Кэширование результатов тяжелых SQL-запросов в Redis.
- Браузер: Кэширование статических ресурсов (CSS, JS, изображения) с помощью HTTP-заголовков.
- CPU: Многоуровневая кэш-память процессора (L1, L2, L3).
Ключевые аспекты для тестирования:
- Актуальность данных (инвалидация): Проверка, что кэш обновляется при изменении данных в источнике. Стратегии: TTL (Time To Live), инвалидация по событию.
- Производительность: Замер времени отклика с включенным и выключенным кэшем.
- Консистентность: В распределенных системах — проверка, что все узлы кэша имеют одинаковые данные.
Пример HTTP-заголовка для кэширования в браузере:
Cache-Control: public, max-age=3600
Это указывает браузеру и промежуточным прокси кэшировать ресурс на 1 час.