Катим в прод | Александр Калыргин
20.02
🚀 Инвалидация кэша
Востребованность на собесе: Бывает 💡
Из прошлого поста мы помним, что кэш - это временное хранилище, куда записываются часто используемые или сложные для вычисления данные. Так как данные имеют свойство устаревать — необходимо уметь их удалять и обновлять. Такой процесс называется инвалидацией кэша. Представьте, что кэш — это холодильник, а инвалидация — ваша девушка, которая выбрасывает испорченные продукты 🥴
ℹ️ Как обновлять данные кэша
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: если данные меняются редко (например, погода раз в час). 🔘 События: когда важна мгновенная актуальность (например, баланс счета). 🔘 Версии и теги: для сложных систем, где нужно точечно управлять кэшем. 🔘 Алгоритмы вытеснения: когда кэш переполняется.
Далее напишу про способы прогрева кэша и алгоритмы вытеснения) На связи ⬇
еще контент в этом сообществе
еще контент в этом соообществе
Катим в прод | Александр Калыргин
20.02
войдите, чтобы увидеть
и подписаться на интересных профи