Кеширование
Кэширование, капстоун: тест на свободное воспроизведение
Воспроизведение бьёт перечитывание. Для каждого промпта произнеси или запиши полный ответ по памяти, прежде чем открыть модельный — усилие воспроизведения поперёк всего трека и сплавляет отдельные юниты в единый инстинкт проектирования.
Восстанови хребет трека — владение уровнями, правило каскада TTL, защиты от stampede и dogpile, валидаторы против свежести, SWR против stale-if-error и инвалидацию через write-path — не заглядывая в уроки.
- 01Назови четыре уровня кэширования, через которые может пройти байт, и данные, которыми владеет каждый.
- 02Сформулируй правило каскада TTL и объясни, какой баг оно предотвращает.
- 03Различи stampede и dogpile и дай защиту для каждого.
- 04Когда брать валидатор (ETag/Last-Modified) против директивы свежести (max-age/s-maxage)?
- 05Сравни stale-while-revalidate и stale-if-error и объясни, почему надёжный стек использует оба.
- 06Почему инвалидация принадлежит write-path и каков правильный порядок распространения?
Если ты восстановил каждый ответ по памяти, ты держишь хребет трека как единый дизайн: назначь каждому уровню данные, которыми он владеет, сокращай свежесть наружу (или purge’ай внешний уровень на каждое внутреннее изменение), защищай истечение горячего ключа через single-flight плюс SWR, используй директивы свежести, чтобы пропустить запрос, и валидаторы, чтобы сделать неизбежную ревалидацию дешёвым 304, наслаивай stale-while-revalidate для счастливого пути и stale-if-error для сбоев, и встраивай инвалидацию в write-path, чтобы она распространялась Redis → proxy → CDN по порядку. Капстоунский навык — скомпоновать это в стратегию, держащуюся под реальной нагрузкой, а не заучить одну директиву.