LRU缓存是什么&&手写LRU缓存

引入LRU缓存

146. LRU 缓存 - 力扣(LeetCode)

这道题目可以让人简单了解什么是LRU缓存

我给出一张图(来源灵茶山艾府)

我就把LRU缓存中的get理解为取书,put理解为存放书

使用LinkedHashMap的访问模式来实现LRU缓存

linkedHashMap

LinkedHashMap 继承自 HashMap,在 HashMap 的基础上用双向链表把所有节点串起来,保证遍历顺序和插入顺序一致。它有两种排序模式:插入顺序和访问顺序。默认是插入顺序,谁先 put 谁在前面;如果构造时把 accessOrder 设为 true,每次 get 或 put 已存在的 key 都会把对应节点挪到链表尾部,最近访问的永远在最后。

访问顺序模式天然适合做 LRU 缓存,只要继承 LinkedHashMap 重写 removeEldestEntry 方法,就能在插入新元素时自动淘汰最老的节点。

相关推荐
TechWayfarer4 小时前
IP归属地运营商生产落地进阶:缓存+降级+灰度对账全解析
网络·python·网络协议·tcp/ip·缓存
田梓燊8 小时前
力扣:146.LRU 缓存
算法·leetcode·缓存
空中海8 小时前
第四篇:进阶篇 — 缓存、消息队列、安全与常用中间件
安全·缓存·中间件
人道领域11 小时前
【黑马点评日记】Redis分布式锁终极方案:Redisson全面解析(含源码解析)
java·数据库·redis·分布式·缓存
BullSmall11 小时前
Redis AOF 文件损坏报错:完整修复方案
数据库·redis·缓存
Fᴏʀ ʏ꯭ᴏ꯭ᴜ꯭.1 天前
《redis-cluster 集群部署完全手册(含扩容+缩容)》
数据库·redis·缓存
八秒记忆的老男孩1 天前
Sentinel5P的L1B级数据预处理(BD7和BD8)【20260427】
数据库·redis·缓存
snow@li1 天前
数据库-Oracle:常用语法 / Oracle 核心知识技能梳理
数据库·redis·缓存
星辰_mya1 天前
系统里的“特种部队”——缓存
缓存
snow@li1 天前
数据库-Redis:常用语法 / Redis 核心知识技能梳理
数据库·redis·缓存