LRU最近最少使用算法

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

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

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

步骤:

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

备注:

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

相关推荐
hellokandy7 天前
Qt QCache 使用指南
qt·lru·qpair·qcache
庞轩px8 天前
第二篇:Redis的过期删除与内存淘汰——数据过期了怎么删?内存满了怎么办?
数据库·redis·缓存·内存·lru·内存淘汰·过期删除
happymaker06269 天前
简单LRU的实现(基于LinkedHashMap)
算法·leetcode·lru
zs宝来了1 个月前
Redis 过期策略与内存淘汰算法全解析
redis·lfu·lru·过期策略·内存淘汰
JiMoKuangXiangQu2 个月前
Linux 内存管理:LRU 链表 (1)
linux·内存管理·lru
北京地铁1号线2 个月前
快手面试题:LRU缓存
缓存·lru
老鼠只爱大米4 个月前
LeetCode经典算法面试题 #146:LRU 缓存(双向链表、线程安全等多种实现方案详细解析)
算法·leetcode·lru·lru缓存·双向链表
源代码•宸4 个月前
Leetcode—146. LRU 缓存【中等】(哈希表+双向链表)
后端·算法·leetcode·缓存·面试·golang·lru
氷泠4 个月前
LRU & LFU 缓存(LeetCode 146 & 460)
lfu·lru·双向链表·缓存算法
七夜zippoe4 个月前
缓存策略:从本地到分布式架构设计与Python实战
分布式·python·缓存·lfu·lru