LRU 缓存带过期时间,面试题该怎么设计

106次阅读
没有评论

标准 LRU 只解决“容量满了淘汰谁”的问题,但一旦再加上访问超时过期,题目就从简单数据结构变成了“容量淘汰加时间淘汰”的组合设计。

先把两个淘汰条件拆开

容量淘汰关注的是最近最少使用,时间淘汰关注的是多久没人访问。只有先把这两个维度分清,设计才不会混乱。

空间淘汰通常可以靠有序结构处理

像 LinkedHashMap 这种带访问顺序的结构,很适合处理最近访问移动到尾部、超容量淘汰头部的需求,核心是把访问顺序维护好。

时间淘汰要考虑清理时机

过期可以在读写时顺手清理,也可以靠后台定时任务清理。前者实现简单,后者更适合减少单次请求抖动,但都要明确复杂度代价。

并发场景别只盯着功能正确

如果题目带多线程,锁粒度、清理冲突和过期判断一致性都要考虑。能主动提到这些问题,通常比只写出单线程版本更加分。

结论

设计带过期时间的 LRU 缓存时,先拆清容量淘汰和时间淘汰,再决定各自的数据结构和清理策略,思路会更清楚。

正文完
 0
bdspAdmin
版权声明:本站原创文章,由 bdspAdmin 于2026-04-08发表,共计391字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)