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

如果有大量的key需要设置同一时间过期,一般需要注意什么?

更多面试题请看这里:https://interview.raoyunsoft.com/
面试题专栏会持续更新欢迎关注订阅

当大量 Redis key 在同一时间点过期时,会引发两个核心问题:

⚠️ 风险隐患

  1. 数据库雪崩效应

    • 所有过期 key 的请求会在同一秒穿透到后端数据库
    • 数据库瞬间承受数十倍甚至百倍的查询压力
    • 可能导致数据库连接池耗尽、CPU 飙升至 100%
    • 最终引发数据库崩溃,表现为 502 服务不可用错误
  2. Redis 服务卡顿

    • Redis 需要同步清理海量过期 key
    • 大量内存回收操作占用主线程资源
    • 导致其他命令执行延迟增加(如 SET/GET 操作)
    • 表现为服务响应时间突增,监控出现毛刺
大量Key同时过期
影响路径
缓存穿透到数据库
Redis内存回收压力
数据库连接池耗尽
Redis响应延迟
服务502崩溃
用户体验卡顿

🛡️ 解决方案与最佳实践

  1. 过期时间随机化(核心方案)

    // 基础过期时间 + 随机偏移量(示例代码)
    int baseExpire = 3600; // 基础1小时
    int randomOffset = (int)(Math.random() * 300); // 0-5分钟随机值
    redis.set(key, value, baseExpire + randomOffset);
    
    • 随机范围建议:基础过期时间的 10%-20%(如 1小时±10分钟)
    • 效果:将过期峰值请求分散到 10-20 分钟的时间窗口
  2. 逻辑过期补偿机制

    客户端Redis服务端数据库请求Key返回逻辑过期标记异步刷新请求查询新数据更新缓存(带新TTL)客户端Redis服务端数据库
    • 在 value 中存储逻辑过期时间戳
    • 实际 TTL 设置为逻辑 TTL 的 1.2-1.5 倍
    • 客户端发现逻辑过期后异步刷新缓存
  3. 多级缓存兜底

    缓存层级过期策略作用
    本地缓存短时固定过期扛过Redis瞬时压力
    Redis随机过期分散数据库压力
    数据库-最终数据源
  4. 监控预警配置

    • Redis 监控项:expired_keys 速率突变告警
    • 数据库监控:QPS 突增阈值告警
    • 设置 Key 过期分布仪表盘(按小时聚合)

🔍 特殊场景处理

  • 定时预热场景:在业务低峰期分批更新 key,避免集中失效
  • 冷启动场景:采用渐进式过期策略,首轮设置短 TTL(5-10分钟),后续逐步延长
  • 集群环境:在分片节点间采用差异化的随机因子算法,避免所有分片同时触发过期
http://www.dtcms.com/a/520214.html

相关文章:

  • 【nvidia-GB200】(2) 18 台 GB200 服务器集群 NCCL All-to-All 性能深度测评:72 张 GPU 多对多通信的效率与潜力
  • MYSQL数据库--基本练习
  • Harbor VS Hadess,开源制品管理工具一文详细对比分析
  • 查找企业信息的网站哪个好广州网站外包
  • 基于3D激光点云的障碍物检测与跟踪---(3)基于匈牙利算法的障碍物跟踪
  • 虚拟化技术实践指南:KVM 与 VMware ESXi 部署全流程
  • 你的地图,你做主!视频汇聚平台EasyCVR解锁多源地图自由,打造监控“全域一张图”
  • Prometheus(四)—— Alertmanager完整部署指南:邮件+钉钉告警全流程落地
  • Fakebook.
  • (11)(2.1.7) FETtec OneWire ESCs
  • 红⿊树实现
  • HTML DOM 简介
  • 介绍东莞网站建设的ppt济南网站建设方案咨询
  • wordpress仿站入门wap网站不流行
  • Andrej Karpathy《Neural Networks: Zero to Hero》:从反向传播到GPT的实战课程
  • 舆情监测的技术内核:Infoseek 如何用分布式架构与多模态技术实现全网捕捉?
  • 影石Insta360发展史:从深圳公寓到全球影像创新标杆
  • 心理学网站的建设网站建设公司怀化
  • 欧姆龙plc内置 EIP 口实现 TCP SOCKET 通讯
  • 渲染相关(Markdown、ByteMD、ReactMarkdown)
  • 安庆信德建设咨询有限公司网站wordpress商城建站
  • esp8266初始化流程
  • SymPy矩阵到NumPy数组转换的深度解析:解决lambdify广播陷阱
  • ClickHouse迁移Starrocks脚本工具
  • LeeCode 74. 搜索二维矩阵
  • 网站建设报价单wordpress type参数
  • 长沙网站建设与维护樟木头镇仿做网站
  • Pandas DataFrame:深入理解数据分析的利器
  • Python嵌入(绿色免安装)版:解决安装第三方包后仍无法使用问题
  • 鸿蒙:将Resource类型的image转成 image.PixelMap 类型