Redis 数据过期后的删除策略是什么?

发布时间:2026/10/27 12:10:17
Redis 数据过期后的删除策略是什么? Redis过期键删除策略面试结构化Redis设置key过期时间key到期不会立刻删除采用惰性删除 定期删除两种策略配合另外还有内存满了触发的内存淘汰策略。1. 惰性删除逻辑key过期不会马上删掉只有当客户端去访问这个key的时候Redis才检查是否过期如果过期直接删除返回nil。优点CPU开销很小只在访问时做检查不占用额外CPU。缺点如果一个key已经过期但一直没人访问它会一直占着内存造成内存泄漏。2. 定期删除逻辑Redis后台每隔一段时间随机抽取一部分设置了过期时间的key检查是否过期过期就删掉。不是扫描全部key是随机抽样避免遍历全部key阻塞主线程。配置控制执行频率、抽样数量。优点解决惰性删除的问题把过期key逐步清理释放内存。缺点不可能把所有过期key全部清理干净依然会残留部分过期key在内存。小结惰性删除定期删除组合依然会有过期key残留在内存。当内存达到上限就触发内存淘汰策略。3. 内存淘汰策略 maxmemory‑policy当Redis内存占用达到maxmemory最大内存限制执行淘汰一共8种volatile‑lru从设置过期时间的key淘汰最近最少使用的LRUallkeys‑lru全部key淘汰最近最少使用最常用volatile‑lfu过期key中淘汰访问频次最低allkeys‑lfu全部key中淘汰访问频次最低volatile‑random在带过期的key随机删allkeys‑random所有key随机删除volatile‑ttl删除快要过期的keyTTL最小优先no‑eviction不删除任何key直接返回报错默认不是这个Redis的LRU、LFU不是严格算法是近似采样算法性能更高。面试高频追问区分过期删除惰性 定期处理已经TTL到期的key。内存淘汰内存打满才触发不管key有没有过期。总结惰性删除访问的时候才删过期key节省CPU但内存可能浪费。定期删除后台随机抽样清理过期key不能清理全部。两者结合仍有残留内存超限触发内存淘汰策略释放内存。线上一般设置maxmemory搭配allkeys‑lru。

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询