当前位置: 首页 > news >正文

Redis 过期删除三大策略详解

Redis 过期删除三大策略详解:定时 / 惰性 / 定期淘汰原理深度对比

Redis 的内存管理,归根结底是一场时间与空间的博弈。当一个 key 设置了过期时间,它就成了一颗定时炸弹——什么时候拆?怎么拆?拆得干不干净?这三个问题,催生了三种截然不同的策略。


一、三种策略的核心逻辑

策略一句话概括谁来拆?什么时候拆?
定时删除到点就炸,绝不拖延定时器过期瞬间
惰性删除你不碰我,我就不死访问者每次读写时
定期删除保安定时巡逻,发现过期就清后台任务每隔一段时间

二、逐策略深度拆解

1. 定时删除(Active Expiration)——时间换空间

原理: 给每个设置过期时间的 key 挂一个定时器,到期立即触发删除。

优点: 干净利落,过期即删,内存利用率最高。

致命缺陷: 假设有 100 万个 key 同时过期,100 万个定时器同时触发,CPU 瞬间被打满。Redis 的核心目标是高性能,绝不能为了内存牺牲 CPU。

结论:Redis 没有采用这种策略。


2. 惰性删除(Lazy Expiration)——空间换时间

原理: key 过期了不管它,等你下次来访问时,先检查是否过期,过期就删,返回 null。

实现入口是expireIfNeeded()函数,每个读写命令执行前都会调用:

1客户端发来 GET mykey 2 → 查过期字典,发现有过期时间 3 → 当前时间 > 过期时间? 4 → 是:删除 key,返回 nil 5 → 否:正常返回值 6

优点: 零额外 CPU 开销,不扫描、不遍历,实现极其简单。

致命缺陷: 如果一个 key 过期后永远没人访问,它就永远躺在内存里。大量过期 key 堆积,就是一场静默的内存泄漏。

单独使用不可行,必须搭配定期删除兜底。


3. 定期删除(Periodic Expiration)——折中之王 ⭐

原理: Redis 的serverCron定时任务(默认每秒 10 次,即每 100ms 一次)主动出击,随机抽取过期字典中的 key 检查是否过期,过期则删。

具体执行逻辑(activeExpireCycle函数):

参数默认值含义
每次扫描的 key 数20 个随机抽取,不遍历全部
过期比例阈值25%超过则继续扫,否则换库
单次最大耗时25ms(slow 模式)超时即停,不阻塞主线程

为什么是随机抽样而不是全量遍历?

假如 Redis 存了几千万个 key,全量遍历一次要几分钟,服务直接瘫痪。随机抽 20 个,既能逐步清理,又不影响正常请求。


三、Redis 的真实组合拳:惰性 + 定期 + Fast 模式

Redis 实际采用的是惰性删除 + 定期删除的组合策略,且内置了双模式自适应调节:

特性Slow 模式(默认)Fast 模式(触发型)
执行频率每秒 10 次最高每秒 1000 次(每 1ms 一次)
单次最大执行时间25ms1ms
触发条件定时触发上一次 slow 模式中过期 key 比例 > 25%
适用场景正常业务大量 key 同时过期(如秒杀结束)
CPU 占用

组合逻辑

  • 定期删除负责"主动巡逻",清理大部分长期未访问的过期 key,控制内存整体水位。
  • 惰性删除负责"最后把关",任何被访问的 key 必定是干净的,绝不返回过期数据。

两者配合,既不让 CPU 空转,也不让内存膨胀——这才是 Redis 高性能的精髓所在。


四、三策略优劣总对比

维度定时删除惰性删除定期删除Redis 实际方案
内存效率⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐
CPU 效率⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐
实现复杂度
内存泄漏风险极低
是否采用✅(组合)

五、关键配置参数

参数默认值作用
hz10每秒定时任务次数,越大定期删除越频繁
active-expire-effort10控制删除强度,值越大扫描越积极
lazyfree-lazy-expirenoRedis 4.0+,是否异步删除过期 key,避免大 key 阻塞主线程
maxmemory-samples5内存淘汰时的采样数(LRU 近似算法用)

💡实战建议: 给大量 key 设置过期时间时,加上随机偏移量(如EX 3600 + rand(0,300)),避免同时过期触发 Fast 模式导致 CPU 飙升。


六、一句话总结

策略本质
定时删除用 CPU 换内存,太贵,不用
惰性删除用内存换 CPU,太懒,单用会漏
定期删除抽样巡逻,可控可调,是主力
Redis 组合拳定期巡逻 + 惰性把关 + Fast 应急 = 性能与内存的最优解

Redis 的过期删除,不是某一种策略的胜利,而是两种策略互相补短的艺术。理解这一点,才算真正读懂了 Redis 的内存管理哲学。

http://www.gsyq.cn/news/1575820.html

相关文章:

  • 2026年6月火锅培训找哪家,火锅包教包会/火锅培训/火锅学徒/火锅技术学习/火锅技术培训/火锅拜师学艺,火锅培训选哪家 - 品牌推荐师
  • Gemini 3.1 Pro多模态实测:分辨率、语义密度与上下文带宽的工程化验证
  • 109、PCIE压力测试与稳定性:从一次深夜宕机说起
  • 2026天津漏水检测维修:不砸砖不破坏,精准查漏正规公司推荐 - 防水资讯
  • Django+React在Ubuntu 18.04部署客户数据管理系统
  • 2026年 螺杆真空泵维修服务推荐榜:专业维保/故障排查/进口国产品牌深度对比 - 企业推荐官【官方】
  • 2026成都旧房改造设计工作室推荐TOP5:擅长老房翻新的本土全案机构 - 资讯快报
  • 算法竞赛:深入理解哈希表与 C++ unordered 容器底层的秘密
  • 亚洲EMBA客观测评:科学选型标准与优质项目解析 - 品牌2026推荐
  • 2026年移动售货亭厂家推荐榜单:景区、公园、小区、夜市、校园、商业街/不锈钢/彩钢/雕花板/真石漆售货亭品牌精选手册 - 企业推荐官【官方】
  • 2026年 三轴机加工实力公司推荐榜:精密制造与高效交付的优选方案深度解析 - 企业推荐官【官方】
  • 2026年西安靠谱装修公司盘点 覆盖新房整装、老房翻新与别墅全案 - 信息热点
  • 襄阳渗漏维修靠谱机构盘点 2026、全屋防水堵漏正规企业实力排名一览 - 宅安选房屋修缮
  • 2026年6月江诗丹顿官方售后服务热线与全维度线下网点地址售后服务体系详解 - 资讯快报
  • 靠谱的无锡专利机构 选择核心标准看这几点 - 资讯快报
  • 新疆出行实用参考:游玩时长规划与多位本地持证领队真实体验整理 - 信息热点
  • 连云港渗漏维修靠谱机构盘点 2026、全屋防水堵漏正规企业实力排名一览 - 宅安选房屋修缮
  • BilibiliDown:如何从B站视频中提取高品质音频的完整指南
  • 2026苏州园区家装全屋防水维修案例|本地直营上门服务,一站式根治家装渗漏难题 - 徽顺虹
  • 季米家纺(JONRMEC)四件套床上用品全系列介绍:九大系列、面料体系与全品类能力一篇看懂 - qiqi1113
  • 智能体驱动的可视化分析框架:从数据到洞察的自动化协同
  • 2026点云处理软件怎么选?全维度解析 - 资讯快报
  • wechatapi二次开发过程,如何处理文件消息
  • 沈阳整装服务哪家好?4家高性价比品牌对比推荐 - 资讯快报
  • 2026年 附近双极真空泵维修厂家推荐榜:专业快速/技术过硬/就近服务首选口碑之选 - 企业推荐官【官方】
  • DSP56720/21 EMC配置实战:GPCM与SDRAM时序详解与调试
  • 2026无锡专利事务所排行榜 本地机构实力盘点 - 资讯快报
  • 2026年 MVR阻垢剂厂家推荐榜单:高效抗垢、低耗排的行业口碑之选 - 企业推荐官【官方】
  • 2026年重庆太空舱定制厂家推荐榜单:科幻民宿/星空营地/创意办公太空舱源头工厂实力解析 - 企业推荐官【官方】
  • summary6/22