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

相关推荐
難釋懷1 小时前
Nginx本地缓存API
nginx·spring·缓存
0xDevNull2 小时前
Redis Lua 脚本详细教程
redis·缓存·lua
MyY_DO2 小时前
缓存穿透-damai
缓存
難釋懷3 小时前
Nginx本地缓存
nginx·spring·缓存
CodeMartain7 小时前
Redis为什么快?
数据库·redis·缓存
南汐以墨14 小时前
一个另类的数据库-Redis
数据库·redis·缓存
一个有温度的技术博主16 小时前
Redis AOF持久化:用“记账”的方式守护数据安全
redis·分布式·缓存
刘~浪地球21 小时前
Redis 从入门到精通(九):事务详解
数据库·redis·缓存
一个有温度的技术博主1 天前
告别“竹篮打水”:Redis单点瓶颈与分布式缓存架构全解析
redis·分布式·缓存
一个有温度的技术博主1 天前
Redis RDB持久化原理:一次快照背后的“分身术”与“读心术”
数据库·redis·缓存