如何实现LRU缓存淘汰算法

image.png

原理

LRU:Least recently used,最近最少使用。缓存算法根据数据最近被访问的情况来进行淘汰数据,其核心思想是“如果数据最近被访问过,那么将来被访问的几率也更高”。

算法实现

链表实现LRU缓存淘汰策略

维护一个有序的单链表,越靠近链表尾部的节点是越早之前被访问的。当有新的数据被访问的时候,从链表头部开始顺序遍历这个链表。

如果,被访问的数据之前已经被缓存到链表中,遍历得到这个数据相对应的节点,并将其从原来的位置删除,然后插入到链表头部。

当被访问的数据没有存储在缓存的链表中时,并且链表中缓存未满,直接将数据插入链表表头。

当被访问的数据没有存储在缓存的链表中时,并且链表中缓存已满,则删除链表的尾部节点,将新的数据节点插入到链表的头部。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 今天无事,周公约下棋去。 安了!
    漫漫无忧阅读 1,355评论 5 3
  • 文/邓眼珠子 1 我是一只猪,准确来说我以前是神仙,现在是一只猪。 我的名字叫猪悟能,是唐三藏的二徒弟。别人都说我...
    邓眼珠子阅读 3,584评论 1 12
  • 我们往往会拿金钱、地位、名誉这些来衡量一个人价值的大小,钱越多,地位越高、名誉越好,那一个人的价值就越大。 对照自...
    满蔓漫阅读 7,951评论 0 1
  • 初遇见你,一笑春风。 谦谦君子,温润似玉; 丰神俊朗,言若荷香。 日出东山,月落西岸; 南国水丰,北地雪明。 不信...
    李若若阅读 3,126评论 1 2
  • 表面强势,可以这样形容? 以前我觉得我是很强势的人,身边的人遇到问题的时候我都会为他们出头。为什么自己遇到问题的时...
    Dawnw阅读 1,706评论 0 0

友情链接更多精彩内容