Skip to content

LRU 缓存

满时淘汰最久未使用的项目 — 就像办公桌上推开旧文件放新文件


概念

现实类比

** 办公桌**:桌上只能放 3 本书。需要新书时从书架上拿(慢),放桌上。桌子满了,就移除最久没碰的那本。

LRU = 哈希表 + 双向链表

操作方式时间
get(key)查 HashMap,节点移到头部O(1)
put(key, value)存在则更新移头部;满则淘汰尾部O(1)

复杂度

操作时间
getO(1)
putO(1)

决策指南

场景推荐
需要 O(1) 操作且有内存上限LRU 缓存
项目有不同过期时间用 LFU 或 TTL 缓存
简单的缓存,不需要淘汰用普通 Map

MIT Licensed | 用 ❤️ 为 JS 初学者制作