LRU与LFU的区别是什么

2023-05-10,

这篇文章主要讲解了“LRULFU的区别是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“LRU与LFU的区别是什么”吧!

常见的缓存剔除策略有

FIFO(First In First Out) 先进先出,淘汰最早数据。

LRU (Least Recently Used)剔除最近最少使用。

LFU (Least Frequently Used)剔除最近使用频率最低的数据。

FIFO 先进先出好理解,LRU与LFU让人有点迷糊,百度百科的解释傻傻有点分不清楚。

找了些资料,举个例子来理理。

如果缓存中有数据如下:

姚毛毛 | 沉默王二 | 纯洁的微笑

 

而缓存中只能存放3个数据,现在需要新增一个数据:

java极客技术

 

意味着要剔除一个缓存数据。

而此时的缓存记录了最近一段时间的访问顺序,从最远到最近,依次是:

姚毛毛 | 沉默王二 | 姚毛毛 | 纯洁的微笑 | 姚毛毛 | 沉默王二 | 纯洁的微笑

按照LRU规则,会将姚毛毛淘汰,因为是最长时间未被使用的,“沉默王二” 、“纯洁的微笑”都在“姚毛毛”其后被使用过。

所以LRU的缺点也很明显,高频率但最近未被使用数据可能会被剔除。
可能会由于一次冷数据的批量查询而误导大量热点的数据。

感谢各位的阅读,以上就是“LRU与LFU的区别是什么”的内容了,经过本文的学习后,相信大家对LRU与LFU的区别是什么这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是本站,小编将为大家推送更多相关知识点的文章,欢迎关注!

《LRU与LFU的区别是什么.doc》

下载本文的Word格式文档,以方便收藏与打印。