Skip to content
9 / 15

Какие бывают стратегии кэширования и как гасить cache stampede?

Стратегий три. Cache-aside: приложение само смотрит в кэш, при промахе идёт в базу и кладёт результат — самый частый вариант, простой и переживающий падение кэша. Write-through: пишем одновременно в кэш и в базу, кэш всегда свежий, но запись дороже и в кэш попадает то, что никто не прочитает. Write-behind: пишем в кэш, в базу асинхронно — быстро, но при аварии данные теряются. Ключевое решение не в стратегии, а в инвалидации: TTL прост и предсказуем, инвалидация по событию точнее, но легко пропустить место, где данные меняются. Отдельная проблема — cache stampede: у популярного ключа истёк TTL, и сотни запросов разом ушли в базу. Гасится блокировкой на пересчёт, разбросом TTL и упреждающим обновлением до истечения срока.

Какие бывают стратегии кэширования и как гасить cache stampede? | JScriptiser