http://cc.cocimg.com/api/uploads//image/20171030/1509368302170729.jpg

缓存淘汰策略是缓存系统中的一组指令集,用于确定哪些数据应从缓存中移除,以保证缓存空间的有效利用。常见的缓存淘汰策略包括LFU、LRU、ARC、FIFO、MRU等。

最不经常使用策略(LFU):
该策略通过一个计数器统计每个缓存条目被访问的次数。当缓存空间不足时,访问频率最低的条目将被优先淘汰。LFU策略的不足之处在于,它难以处理那些早期访问频繁但后期长时间未被访问的数据,可能导致缓存效率下降。

http://xiaorui.cc/wp-content/uploads/2015/04/20150420105345_48639.png

最近最少使用策略(LRU):
LRU策略将最近访问过的数据置于缓存顶部,而较久未访问的数据则逐渐沉到底部。当缓存容量达到上限时,最久未被访问的数据会被移除。该算法需要维护每个条目的“访问时间戳”或“年龄位”,实现成本较高,且在数据淘汰后需更新其余条目的状态信息。

http://upload-images.jianshu.io/upload_images/1466264-5a472df5ec57137f.png?imageMogr2/auto-orient/strip%257CimageView2/2/w/1240

自适应缓存替换策略(ARC):
ARC由IBM Almaden研究中心提出,该策略同时追踪LFU和LRU两种访问模式,动态调整淘汰机制,以在变化的访问模式下实现缓存利用率的最大化。

先进先出策略(FIFO):
FIFO是一种按写入顺序依次移除数据的缓存管理方式。它没有外部寻址能力,操作简单,但无法随机访问指定数据,只能顺序读写,内部通过指针自动递增实现数据的存取。

http://images.cnitblog.com/i/221914/201407/082202026607080.png

最近最常使用策略(MRU):
与LRU相反,MRU策略会优先淘汰最近被频繁访问的数据。这种策略适用于访问模式呈现“最近频繁访问的数据之后可能不再被使用”的场景。