Кеширование

6 вопросов

Паттерны кеширования: Cache-Aside, Write-Through/Behind, LRU. Проблема cache stampede и singleflight. TTL, инвалидация, in-process vs distributed cache.

1 Как работает паттерн Cache-Aside (lazy loading)? 🟢 Лёгкий
Ответ: A) Приложение сначала проверяет кеш; при промахе читает из БД и записывает результат в кеш

При Cache-Aside приложение само управляет кешем: при промахе читает из БД и кладет данные в кеш.

Подробнее →
2 В чем основное различие между стратегиями Write-Through и Write-Behind? 🟡 Средний
Ответ: A) Write-Through пишет в кеш и БД синхронно; Write-Behind откладывает запись в БД

Write-Through обновляет кеш и БД в одной операции; Write-Behind пишет в кеш сразу, в БД - асинхронно.

Подробнее →
3 Что такое cache stampede (thundering herd) и как пакет singleflight помогает с этой проблемой? 🟡 Средний
Ответ: A) Много запросов при промахе кеша одновременно идут в БД; singleflight объединяет их в один вызов

Stampede - одновременная нагрузка на БД при промахе; singleflight гарантирует один загрузчик для одного ключа.

Подробнее →
4 Что такое TTL и какие стратегии инвалидации кеша существуют? 🟡 Средний
Ответ: A) TTL - время жизни записи; инвалидация бывает по TTL, явная, по событиям и по версиям

TTL задает время жизни записи; инвалидация может быть по времени, явная (invalidate on write), по событиям или по версиям.

Подробнее →
5 Что такое LRU-кеш и как он обычно устроен? 🟡 Средний
Ответ: A) Кеш с вытеснением давно не использованных элементов; хеш-таблица + двусвязный список

LRU (Least Recently Used) вытесняет элементы, к которым дольше всего не обращались; структура: map + двусвязный список.

Подробнее →
6 Когда целесообразно использовать in-process кеш, а когда распределенный? 🟡 Средний
Ответ: A) In-process - один инстанс, минимальная задержка; distributed - несколько инстансов, общий кеш

In-process подходит для одного процесса и низкой задержки; distributed - когда несколько узлов должны разделять один кеш.

Подробнее →
🧠Квиз 🏆Лидеры 🎯Собесед. 📖Вопросы 📚База зн.