digital-garden/Инвалидация кэша.md

2.4 KiB
Raw Blame History

aliases tags date zero-link parents linked
зрелость/🌱
2024-06-18
00 HighLoad
Кэширование

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

Один из подходов это инвалидация по времени. Для кэшированных данных устанавливается TTL, и по прошествию времени кэш удаляется. Такое вариант подходит для редко изменяемых данных, устаревание которых не приводит к серьезным проблемам в бизнес-логике, например словари. При таком варианте важно подобрать оптимальное время жизни кэша, слишком маленькое время жизни будет давать плохую производительность, слишком большое ухудшит опыт пользователей.

Первый вариант не подходит. Некоторые чуствительные данные нужно инвалидировать их сразу при изменении. Тут может помочь тегирование ключей.

Способы инвалидации:

  • По истечению срока жизни - TTL.
    • Самый простой способ.
    • При малом TTL можно
  • Принудительный вызов команды инвалидации.
  • Алгоритмы вытеснения

Алгоритмы вытеснения: