您好,登录后才能下订单哦!
这篇文章主要讲解了“LRU与LFU的区别是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“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的区别是什么这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。