В этом видео:
В данном уроке разбираются ключевые проблемы кеширования, из-за которых даже хорошо спроектированная система может начать вести себя непредсказуемо.
Сначала автор объясняет, почему кеш так часто возвращает устаревшие данные и почему один только TTL редко спасает ситуацию: слишком много сценариев, в которых данные меняются быстрее, чем ты рассчитываешь.
Далее поднимается тема правильной инвалидации: когда нужно сбрасывать кеш, как избежать гонок при одновременном обновлении и почему в реальных системах приходится комбинировать явные блокировки, оптимистичные механизмы и такие инструменты, как Redis WATCH.
Отдельный блок посвящен нагрузочным аномалиям - thundering herd, лавина кеша, массовое истечение TTL. Автор показывает, как один небольшой просчет в стратегии истечения или инвалидации может вызывать резкие пики нагрузки на базу. Чтобы избежать этого, разбираются подходы вроде single-flight, мягких и жестких TTL, negative-cache и добавления джиттера к срокам жизни ключей. Все это помогает держать кеш в предсказуемом состоянии под высокой конкуренцией и не допустить ситуации, когда приложение одновременно ломится к источнику данных.
Помимо алгоритмов и паттернов, видео затрагивает архитектурную сторону работы с кешем. Значительная часть урока уделена наблюдаемости - логам, метрикам и мониторингу кеш-хитов и промахов. Автор показывает, почему кеш - это полноценный слой системы, который требует осознанного проектирования и контроля.
Данный урок будет полезен backend-разработчикам, инженерам, работающим с высоконагруженными системами, а также разработчикам, которые используют Redis или любой распределенный кеш в продакшене. Материал подходит и тем, кто уже сталкивался с непонятными провалами в производительности и хочет глубже понять, почему "кеш иногда делает только хуже".
Если ты хочешь научиться проектировать кеш как надежный компонент системы - этот урок тебе точно понравится.
- 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 или любой распределенный кеш в продакшене. Материал подходит и тем, кто уже сталкивался с непонятными провалами в производительности и хочет глубже понять, почему "кеш иногда делает только хуже".
Если ты хочешь научиться проектировать кеш как надежный компонент системы - этот урок тебе точно понравится.