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

Redis的过期策略与内存淘汰机制

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

📌 Redis的过期策略

Redis采用双重过期管理机制确保内存高效利用:

  1. 定期删除

    • 默认每100ms随机抽取部分key检查过期状态
    • 仅删除抽样中发现已过期的key(非全量扫描)
    • 平衡点:避免高频扫描导致的CPU资源消耗
    启动定时任务
    随机选择20个key
    是否过期?
    删除key
    继续抽样
  2. 惰性删除

    • 在客户端访问key时实时检查过期状态
    • 若发现过期立即删除并返回空值
    • 关键优势:零额外CPU开销

⚠️ 为何不用定时删除?
定时器精确监控每个key过期虽能及时释放内存,但会严重消耗CPU资源。在高并发场景下,CPU应优先处理请求而非执行删除操作。


🚨 内存淘汰机制

定期删除+惰性删除仍导致内存堆积时,触发内存淘汰策略(需在redis.conf配置):

# redis.conf关键配置
maxmemory 4gb  # 设置最大内存
maxmemory-policy volatile-lru  # 设置淘汰策略
🔥 六大淘汰策略
策略作用范围淘汰逻辑适用场景
volatile-lru仅过期集合淘汰最近最少使用的key热点数据集中场景
volatile-ttl仅过期集合淘汰剩余寿命最短的key时效性敏感数据
volatile-random仅过期集合随机淘汰key无特殊要求场景
allkeys-lru所有key全局LRU淘汰内存不足时优先保证新写入
allkeys-random所有key全局随机淘汰数据均匀分布场景
noeviction-禁止淘汰,拒绝新写入数据绝对不可丢失场景

💡 关键细节:

  • 未设置过期时间的key不会被volatile-*策略淘汰
  • allkeys-*策略会无视过期状态操作所有key
  • 生产环境推荐allkeys-lru(平衡命中率与内存控制)

🛠️ 策略选择建议

内存是否告警?
是否有不可丢失数据?
noeviction
是否区分冷热数据?
allkeys-lru
allkeys-random
  • 金融场景 → 优先noeviction + 独立扩容方案
  • 电商缓存 → 首选allkeys-lru 保证高命中率
  • 实时日志 → 使用volatile-ttl 自动清理旧数据

⚠️ 实际案例:某社交平台使用volatile-lru后,缓存命中率从82%提升至94%,同时内存溢出故障减少87%

http://www.dtcms.com/a/500965.html

相关文章:

  • 从架构到体验:友猫社区平台的全栈技术解析与功能体系详解
  • 鸿蒙开发环境安装以及桌面应用开发
  • 网站建设博客作业蚌埠铁路建设监理公司网站
  • 计算机网络(tcp_socket )(一)
  • 湖北省建设厅网站上岗证查询立创商城
  • python学习之路(四)
  • 电商网站开发的职责建筑企业查询
  • 国外网站配色个人论坛类网站
  • 【Java 基础】核心知识点梳理
  • 做网站图片视频加载慢做网站的公司都有哪些岗位
  • 中药饮片采购平台的定义与作用是什么?
  • 【AI 学习日记】 深入解析MCP —— 从基础配置到高级应用指南
  • 网站买卖交易平台做网站需要编程?
  • 公司网站建设内容wordpress 识别二维码
  • 在淘宝上的毕设网站代做wordpress上传的图片不显示
  • 织梦网站数据库备份文件夹wordpress安装的要求
  • 医疗网站建设哪个好用郑州市网络设计公司
  • 用dz做网站怎么设置数据库远程wordpress数据库
  • 公司部门网站设计模板下载贵州网站建设服务平台
  • wordpress资源站源码请选择一个网站制作软件
  • 自己做网站想更换网址静态网页模板网站
  • 有哪些网站是可以做宣传的企业网站设计原则
  • 肤契:全域协议版 十 终章 回声协议 · 审判之日
  • 微网站开发案例深圳万户网络技术有限公司
  • MFC框架(Num29)
  • 哪些网站是wordpress网站建设肆金手指排名9
  • 湖南省住房和建设厅网站全网最大的精品网站
  • 哈尔滨建设工程信息网官方网站可以查企业的网站
  • 电子政务网站建设流程建筑设计集团
  • 用数据库做网站app开发制作价格表