6 вопросов
Паттерны кеширования: Cache-Aside, Write-Through/Behind, LRU. Проблема cache stampede и singleflight. TTL, инвалидация, in-process vs distributed cache.
При Cache-Aside приложение само управляет кешем: при промахе читает из БД и кладет данные в кеш.
Подробнее →Write-Through обновляет кеш и БД в одной операции; Write-Behind пишет в кеш сразу, в БД - асинхронно.
Подробнее →Stampede - одновременная нагрузка на БД при промахе; singleflight гарантирует один загрузчик для одного ключа.
Подробнее →TTL задает время жизни записи; инвалидация может быть по времени, явная (invalidate on write), по событиям или по версиям.
Подробнее →LRU (Least Recently Used) вытесняет элементы, к которым дольше всего не обращались; структура: map + двусвязный список.
Подробнее →In-process подходит для одного процесса и низкой задержки; distributed - когда несколько узлов должны разделять один кеш.
Подробнее →