LFU:least frequently used
最不经常使用策略,在一段时间内,数据被使用频次最少的,优先被淘汰
是一种用于管理计算机内存的缓存算法
主要用于记录和追踪内存块的使用次数,当缓存已满并且需要更多空间时,系统将以最低内存块使用频率清楚内存。
实现的简单方法是:为每个加载到缓存的块分配一个计数器,每次引用该块时,计数器加1。当达到容量并有一个新的内存块等待插入时,系统将搜索计数器最低的块并删除。
应用场景:
底层的内存管理,页面置换算法
一般的缓存服务,如memcache、redis等
部分业务场景
缺点:
由于lfu的策略是删除访问次数最小的数据块,但是新插入的数据块的访问次数是1
这样会产生缓存污染,使得新数据块被淘汰
改进方法参考LFU-Aging(LFU成熟版)
示意图:
lfu-guide-image.png
代码示例:
暂缺