LRU、LFU 缓存淘汰算法 有更新! 2025-03-24 一、基本概念 LRU(Least Recently Used)和 LFU(Least Frequently Used)是两种常见的缓存淘汰算法,用于在缓存空间有限的情况下选择合适的缓存对象进行淘汰,以提高缓存的利用效率。 LRU 算法基于 "最近最少使用" 的原则进行淘汰。它维护一个缓存的访问顺序链表,当有新的数据被访问时,如果数据已经在缓存中,则将其移到链表头部;如果数据不在缓存中,则将其添加到链表头部。当需要淘汰数据时,选择链表尾部的数据进行淘汰,因为维护的数据是最近最少被访问的数据。 LFU 算法基于 "最不经常使用" 的原则进行淘汰。它维护一个缓存对象的访问频次,对于每个访问到的对象,增加其访问频次。当需要淘汰数据时,选择访问频次最低的数据进行淘汰。 二、适用场景 LRU 和 LFU 算法都有各自的优势和适用场景 LRU 算法适用于访问具有时间局部性的数据,即最近被访问的数据可能在将来一段时间内仍然会被访问。LRU 算法相对较简单,容易实现,适用于大多数场景。但是,当存在 "热点数据"(被频繁访问的数据)时,LRU 算法可能无法有效的保证缓存的命中率。 LFU 算法适用于....