前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何实现LRU缓存淘汰算法

如何实现LRU缓存淘汰算法

作者头像
s_在路上
发布2018-12-06 15:29:04
6710
发布2018-12-06 15:29:04
举报
文章被收录于专栏:iOS 开发杂谈iOS 开发杂谈
原理

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

算法实现

链表实现LRU缓存淘汰策略

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

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

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

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018.10.30 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 原理
  • 算法实现
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档