4 распространённые стратегии вытеснения кэша
Память стоит дорого, так что как выбрать, какой элемент удалить, когда кэш заполнен?
🔹Least Recently Used (LRU): классический вариант. Удаляется элемент, который не использовался дольше всего. Так кэш хранит самые «свежие» данные, к которым недавно был доступ.
🔹Time-aware Least Recently Used (TLRU): похож на LRU, но с учётом времени жизни элементов. Удаляются старые и давно неиспользуемые данные, чтобы кэш оставался актуальным.
🔹Least Frequently Used (LFU): считает, как часто используется каждый элемент. Удаляет тот, который используется реже всего, оставляя в кэше наиболее востребованные данные.
🔹Most Recently Used (MRU): противоположный подход - удаляется элемент, использованный последним, предполагая, что он в ближайшее время больше не понадобится.
Представьте, что у вас плейлист из 100 песен: если кэшировать только последнюю проигранную песню (используя LRU), будут проблемы. Почему?
Потому что к первой песне вы вернётесь только после того, как проиграете остальные 99.
Исходя из стратегий выше, что бы вы выбрали для такого сценария?
👉 @GolangPortal