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 方法,就能在插入新元素时自动淘汰最老的节点。

相关推荐
梅孔立10 小时前
两种免费的翻译API调用方式详解 - Edge官方API与个人缓存服务
前端·缓存·edge
gwf21610 小时前
SSD读写速度深度解析:顺序读写vs随机读写、IOPS、延迟,你的硬盘性能到底怎么看?
git·嵌入式硬件·缓存·github·智能硬件
番茄炒鸡蛋加糖12 小时前
缓存三大问题
缓存
江晓鱼未暖17 小时前
十七、Redis 核心原理与架构详解
大数据·数据库·数据仓库·redis·缓存·架构
小罗水17 小时前
第13章 Redis 缓存、幂等锁与任务状态
数据库·redis·缓存
热心市民lcj18 小时前
Spring Boot 整合 Caffeine 本地缓存实战
spring boot·后端·缓存
zx11545019 小时前
【热点 Key 探测与加长缓存 TTL 实战】
缓存
toooooop81 天前
如何用 ss + ps 精准定位本机 Redis 的“隐形”消费者?
linux·数据库·redis·缓存
软萌萌的11 天前
C#中的多级缓存架构设计与实现深度解析
缓存·c#·wpf
醉城夜风~2 天前
HTML表单域学习博客:表单标签、输入框、按钮详解
android·java·缓存