LRU最近最少使用算法

LRU(LeastRecentlyUsed)"最近最少使用"算法:

1.当缓存空间已满耗用时,淘汰最近最少使用数据的缓存对象以释放更多的缓存空间(用于历史缓存对象的维护)。

哈希表:快速查找缓存对象;双向链表:维护 历史数据所在的节点顺序。

步骤:

具体来说,当新的数据被访问时,先在哈希表中查找该数据是否已经存在于缓存中,如果存在,则将该数据移动到双向链表的头部,表示该数据是最近访问的数据;如果不存在,则需要将该数据添加到缓存中,并将其添加到双向链表的头部。当缓存空间已满时,需要淘汰双向链表中最后一个节点,同时在哈希表中删除对应的缓存数据。

备注:

缓存元件位处CPU内 操作速度比内存更快

相关推荐
_OP_CHEN1 天前
【C++数据结构进阶】吃透 LRU Cache缓存算法:O (1) 效率缓存设计全解析
数据结构·数据库·c++·缓存·线程安全·内存优化·lru
天赐学c语言22 天前
12.2 - LRU缓存 && C语言内存布局
c++·算法·lru·内存布局
XueminXu3 个月前
Flink-SQL计算中的维表连接使用举例
sql·flink·lru·system_time·proctime·连接维表·关联维表
Pretend° Ω3 个月前
LRU缓存详解:用C语言实现高效数据管理
运维·c语言·spring·缓存·lru·双向链表
KarrySmile4 个月前
Day12--HOT100--23. 合并 K 个升序链表,146. LRU 缓存,94. 二叉树的中序遍历
数据结构·链表·二叉树·递归·hot100·lru·灵茶山艾府
triticale4 个月前
【计算机组成原理】LRU计数器问题
cache·计算机组成原理·lru
Alfred king5 个月前
面试150 LRU缓存
链表·缓存·哈希表·lru·双向链表
R_AirMan7 个月前
结合源码分析Redis的内存回收和内存淘汰机制,LRU和LFU是如何进行计算的?
redis·lfu·lru·内存回收·内存淘汰
柯3498 个月前
Redis的过期删除策略和内存淘汰策略
数据库·redis·lfu·lru
依旧风轻9 个月前
使用 Swift 实现 LRU 缓存淘汰策略
缓存·swift·哈希表·lru·双向链表