📢 欢迎来到万事技术论坛!本站仅讨论合法编程技术话题,严禁外挂/作弊/黑产/盗版内容,违者封号。

30 行手写一个 LRU 缓存

晚风 核心会员

LRU(最近最少使用)缓存面试常考。用 OrderedDict 几十行就能写对:

  • get 命中就把 key 移到末尾(表示最近用);
  • put 超容量就 popitem(last=False) 扔掉最久没用的;
  • 加把锁就能线程安全。

完整可运行代码在附件 lru.py,含 if __name__=='__main__' 演示。核心就这几行:

def get(self, k, default=None):
    if k not in self.store: return default
    self.store.move_to_end(k)
    return self.store[k]

拿去当 Redis 本地前置缓存很合适。

📎 附件(1)
📦
lru.py 1.1 KB · 已下载 0 次
免费 下载
附件由作者自行定价,用站内点数购买;购买后永久可下载。点数不足可在「购买邀请码」页联系管理员充值。
楼主 · 2026-09-26 14:31 · 浏览 155 · 编辑于 2026-09-26 14:31
captain_algo 活跃会员

OrderedDict.move_to_end 这招太妙了。

1楼 · 2026-09-26 15:19
登录 后即可参与回复。