разыгрываем курсы в нашем tg-канале
магия нового года
Открытые уроки

Почему ваш кеш ломает систему

В этом видео:
  • 00:00 - Введение
  • 03:19 - Stale data (устаревшие данные)
  • 05:58 - TTL
  • 08:36 - Пути инвалидации
  • 15:33 - Explicit lock
  • 18:36 - Redis watch
  • 21:23 - Optimistic lock
  • 36:29 - Redis mudule
  • 42:12 - Thundering herd
  • 43:36 - Single flight
  • 47:37 - Soft & hard ttl
  • 52:04 - Negative cache
  • 59:00 - Cache avalanche
  • 1:00:00 - Random ttl & jitter
  • 1:02:45 - Multi-level cache
  • 1:05:24 - Redis sharding
  • 1:15:20 - Политики вытеснения
  • 1:21:39 - Наблюдаемость
  • 1:26:38 - Краткое резюме
  • 1:29:33 - Курс по отказоустойчивости

В данном уроке разбираются ключевые проблемы кеширования, из-за которых даже хорошо спроектированная система может начать вести себя непредсказуемо.

Сначала автор объясняет, почему кеш так часто возвращает устаревшие данные и почему один только TTL редко спасает ситуацию: слишком много сценариев, в которых данные меняются быстрее, чем ты рассчитываешь.

Далее поднимается тема правильной инвалидации: когда нужно сбрасывать кеш, как избежать гонок при одновременном обновлении и почему в реальных системах приходится комбинировать явные блокировки, оптимистичные механизмы и такие инструменты, как Redis WATCH.

Отдельный блок посвящен нагрузочным аномалиям - thundering herd, лавина кеша, массовое истечение TTL. Автор показывает, как один небольшой просчет в стратегии истечения или инвалидации может вызывать резкие пики нагрузки на базу. Чтобы избежать этого, разбираются подходы вроде single-flight, мягких и жестких TTL, negative-cache и добавления джиттера к срокам жизни ключей. Все это помогает держать кеш в предсказуемом состоянии под высокой конкуренцией и не допустить ситуации, когда приложение одновременно ломится к источнику данных.

Помимо алгоритмов и паттернов, видео затрагивает архитектурную сторону работы с кешем. Значительная часть урока уделена наблюдаемости - логам, метрикам и мониторингу кеш-хитов и промахов. Автор показывает, почему кеш - это полноценный слой системы, который требует осознанного проектирования и контроля.

Данный урок будет полезен backend-разработчикам, инженерам, работающим с высоконагруженными системами, а также разработчикам, которые используют Redis или любой распределенный кеш в продакшене. Материал подходит и тем, кто уже сталкивался с непонятными провалами в производительности и хочет глубже понять, почему "кеш иногда делает только хуже".

Если ты хочешь научиться проектировать кеш как надежный компонент системы - этот урок тебе точно понравится.
Микросервисы