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

相关推荐
ofoxcoding4 天前
在AI API聚合平台配置DeepSeek V3.2提示词缓存实战:快速接入与成本优化指南
人工智能·spring·缓存·ai
NeilYuen4 天前
gRPC结合FAISS构建AI助手语义缓存模块(一):设计
人工智能·缓存·faiss
taocarts_bidfans4 天前
反向海淘跨境缓存架构优化:taocarts Redis分层缓存实战技术
redis·缓存·架构·反向海淘·taocarts
退休倒计时4 天前
【每日一题】LeetCode 146. LRU 缓存 TypeScript
算法·leetcode·缓存·typescript
炘爚4 天前
Linux——Redis
数据库·redis·缓存
小挪号底迪滴5 天前
Redis 和 MySQL 数据不一致怎么办?缓存更新策略实战
redis·mysql·缓存
闪电悠米5 天前
黑马点评-Redis ZSet-实现关注 Feed 流
服务器·网络·数据库·redis·缓存·junit·lua
Saniffer_SH5 天前
【高清视频】Gen6 服务器还没到,Gen6 SSD 怎么测?Emily 现场演示三种测试环境
人工智能·驱动开发·测试工具·缓存·fpga开发·计算机外设·压力测试
AC赳赳老秦5 天前
OpenClaw + 飞书多维表格:自动同步数据、生成统计图表、触发自动化任务
java·大数据·python·缓存·自动化·deepseek·openclaw