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

相关推荐
hweiyu002 小时前
Redis命令:HRANDFIELD
redis·缓存
sinat_286945193 小时前
大模型推理:部署方式与性能优化思路
人工智能·算法·缓存·chatgpt·性能优化
青茶36020 小时前
开发一个网站插件,什么时候用到缓存存储功能呢?
缓存·网站
海绵宝宝转agent20 小时前
Pico 学习笔记 Harness 设计、历史压缩、三类目录与缓存复用
笔记·学习·缓存
ShineWinsu21 小时前
对于Redis:AOF持久化的解析
linux·数据库·redis·缓存·面试·持久化·aof
仍然.21 小时前
Redis---集群
数据库·redis·缓存
hweiyu001 天前
Redis命令:HSCAN
redis·缓存
清水白石0081 天前
Python 对象模型深度解析:从“一切皆对象”到 id、type、isinstance 底层机制与小整数缓存原理
开发语言·python·缓存
sinat_286945191 天前
LLM Serving 中的四种缓存
人工智能·缓存·chatgpt
ShineWinsu1 天前
对于Redis:RDB持久化的解析
linux·数据库·redis·缓存·面试·持久化·rdb