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

相关推荐
栗子~~6 小时前
JAVA - 二层缓存设计(本地缓冲+redis缓冲+广播所有本地缓冲失效) demo
java·redis·缓存
隔窗听雨眠6 小时前
多活部署、CDN加速与边缘缓存全链路优化实战
缓存
未若君雅裁7 小时前
MyBatis 一级缓存、二级缓存与清理机制
java·缓存·mybatis
1892280486110 小时前
NY352固态MT29F32T08GWLBHD6-24QJ:B
大数据·服务器·人工智能·科技·缓存
丷丩11 小时前
三级缓存下MVT地图瓦片服务性能优化策略
算法·缓存·性能优化·gis·geoai-up
柿柿快乐12 小时前
Redis 入门第一课:全局命令、内部编码与单线程模型
redis·学习·缓存·基础教学
磊 子12 小时前
1.4CPU缓存一致性
java·spring cloud·缓存·系统
Tirzano13 小时前
超大型组和用户缓存redis
redis·缓存·哈希算法
码云骑士16 小时前
Redis 入门实战:从 NoSQL 概念到安装与基础操作详解(一)
数据库·redis·缓存
高翔·权衡之境18 小时前
主题9:DMA与零拷贝——让CPU从数据搬运中解放
驱动开发·安全·缓存·系统安全·信息与通信