🚀 Инвалидация кэша

Востребованность на собесе: Бывает 💡

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

ℹ️ Как обновлять данные кэша

1️⃣ Устанавливать время жизни данным (Time To Leave) Проще говоря, это «срок годности» данных. Например, ваше приложение кэширует ленту новостей. Выставляем TTL = 10 минут → каждые 10 минут кэш очищается, и система запрашивает свежие посты. Этот вариант лучше использовать когда данные меняются редко (например, погода раз в час).

2️⃣ Обновлять данные по событию Здесь кэш обновляется только при конкретном действии. Например, пользователь изменил аватарку → система сразу удаляет старую картинку из кэша и загружает новую. Этот вариант лучше использовать когда важна мгновенная актуальность (например, баланс счета).

3️⃣ Устанавливать версию кэша Добавляем к данным уникальную версию. Например, файл стилей styles.css превращается в styles_v2.css. При обновлении версии браузер загружает новый файл, а не старый из кэша.

4️⃣ Присваивать тэги Группируем данные по тегам, чтобы очистить всё разом. Допустим, в блоге статьи с тегами #python и #базы_данных. Если исправили ошибку в категории «Python», инвалидируем все записи с этим тегом.

5️⃣ Использовать алгоритмы вытеснения У всех алгоритмов одна идея - удалить старую запись и добавить новую. Способы реализации разные: Алгоритм Белади (OPT), random, LRU, SLRU, TLRU, LRU-k, MRU, LFU, LIFO, FIFO, 2Q, Second Chance, Clock. Про эти алгоритмы распишу в отдельном посте)

🔍 Когда что использовать?

🔘 TTL: если данные меняются редко (например, погода раз в час). 🔘 События: когда важна мгновенная актуальность (например, баланс счета). 🔘 Версии и теги: для сложных систем, где нужно точечно управлять кэшем. 🔘 Алгоритмы вытеснения: когда кэш переполняется.

Далее напишу про способы прогрева кэша и алгоритмы вытеснения) На связи ⬇

@katimvprod

🚀 Инвалидация кэша | Сетка — новая социальная сеть от hh.ru
repost

335

input message

напишите коммент

еще контент в этом сообществе

еще контент в этом соообществе

войдите, чтобы увидеть

и подписаться на интересных профи

в приложении больше возможностей

пока в веб-версии есть не всё — мы вовсю работаем над ней

сетка — cоциальная сеть для нетворкинга от hh.ru

пересекайтесь с теми, кто повлияет на ваш профессиональный путь