新闻中心
Redis数据过期策略是什么 Redis内存淘汰机制【解析】
Redis过期策略与内存淘汰机制协同工作:前者用惰性+定期删除处理到期数据,后者在maxmemory触发时按策略(如allkeys-lru)淘汰key;二者分属时间与空间维度,不可替代。

Redis 数据过期策略和内存淘汰机制是两套独立但协同工作的机制:前者解决“数据什么时候失效”,后者解决“内存不够时删谁”。它们不互为替代,而是分阶段配合——先靠过期策略清理自然到期的数据,再靠淘汰机制兜底应对内存压力。
过期策略:惰性 + 定期,双管齐下
Redis 不采用“一到时间就立
刻删除”的定时删除(避免单线程阻塞),而是用两种轻量方式组合处理:
- 惰性删除:每次访问 key 前,Redis 检查它是否已过期;若过期,当场删除并返回 nil。优点是零额外 CPU 开销,缺点是冷数据可能长期滞留内存。
- 定期删除:默认每秒执行 10 次(由配置项 hz 控制),每次从过期字典中随机抽 20 个 key 检查,若其中过期比例超 25%,就再抽一轮,直到比例达标或单次耗时超 25ms 为止。它能主动释放一部分内存,但无法覆盖全部过期键。
注意:主库负责过期判断与触发 del 指令,从库只同步执行,存在短暂主从不一致风险;所有过期 key 都存于独立的 expires 字典,不影响主键空间查询效率。
内存淘汰机制:maxmemory 触发,按策略选删
当 Redis 实际内存使用达到 maxmemory 限制(如 maxmemory 256mb)时,写入新数据前会触发淘汰。策略通过 maxmemory-policy 配置,常见选项有:
Figma
Figma 是一款基于云端的 UI 设计工具,可以在线进行产品原型、设计、评审、交付等工作。
1371
查看详情
- allkeys-lru:在全部 key 中淘汰最近最少使用的(推荐用于纯缓存场景)
- volatile-lru:只在设置了过期时间的 key 中淘汰 LRU 的(适合缓存+持久化混合场景,但需谨慎)
- volatile-ttl:只在带过期时间的 key 中,优先淘汰剩余存活时间最短的
- noeviction:默认策略,内存满则拒绝写入并报错(OOM),适用于强一致性要求场景
- allkeys-lfu:基于访问频次淘汰(Redis 4.0+ 支持),适合识别“低频但重要”的长尾数据
淘汰不是实时逐个扫描全量 key,而是采样(默认 5 个)后近似计算,兼顾性能与效果。
关键区别与协同逻辑
过期策略关注的是“时间维度”——键是否到了 TTL 终点;内存淘汰关注的是“空间维度”——当前能否腾出位置写新数据。
- 一个 key 即使已过期,若未被惰性检查或定期扫描抽中,仍会留在内存中,直到淘汰机制启动时才可能被顺带清掉(取决于所选策略是否覆盖它)
- 如果用了
noeviction策略,过期键不及时清理 + 内存打满,就会直接写失败;所以生产环境通常搭配allkeys-lru或volatile-lru,并合理设置hz(建议 10–25) - 大量 key 同一时刻过期(比如批量设了相同 EXPIREAT)会加剧定期删除循环,导致 CPU 短时飙升、响应延迟,应主动加随机偏移(如 ±300 秒)分散过期时间
基本上就这些。理解清楚这两层机制的分工和边界,才能避免缓存击穿、内存溢出或误删有效数据的问题。
以上就是Redis数据过期策略是什么 Redis内存淘汰机制【解析】的详细内容,更多请关注其它相关文章!
# 有哪些
# 宁波网站建设团队招聘
# 商业网站建设价钱
# 郴州网站建设策划方案
# 南阳seo虾哥网络
# 建材企业网站推广
# 京山seo获客服务好
# 优书网站建设ppt制作
# 怎样做seo项目
# 南明区外贸网络推广营销
# 绍兴企业网站建设
# 什么时候
# redis
# 就会
# 都有哪些
# 协同工作
# 如何做
# 有什么区别
# 只在
# 几种
# 的是
# red
# 区别
相关栏目:
【
科技资讯46185 】
【
网络学院92790 】
相关推荐:
使用Python高效删除Word宏并转换DOCM为DOCX格式
C#如何安全地从用户上传的XML文件中读取数据? 验证与清理策略
学习通在线学习平台 学习通网页版直接进入课程中心
怎样更改Windows系统的默认安装路径_避免C盘爆满的终极设置【技巧】
微信群消息显示延迟如何解决 微信群消息刷新优化方法
ACG动漫视频网入口 ACG动漫*免费正版观看地址
实现分段式页面滚动导航:CSS与J*aScript教程
不会效仿卡普空!《铁拳》制作人澄清:不采取赛事付费|直播|
Golang如何通过reflect获取匿名字段方法_Golang reflect匿名字段方法访问技巧
小红书商家版怎样在笔记嵌入商品卡路径_小红书商家版在笔记嵌入商品卡路径【挂载教程】
知乎APP怎么管理已购盐选内容_知乎APP盐选内容购买记录与查看方法
顺丰国际快递查询 国际件官方查询入口
c++项目目录结构应该如何组织_c++工程化项目结构规范
海量存储:机器视觉智能化的核心基石
J*aScript动态修改指定div内所有a标签样式指南
fishbowl官网免费版 fishbowl养鱼网站入口
C++如何使用AddressSanitizer(ASan)_C++调试工具中检测内存访问错误的利器
Pygame教程:解决用户输入与游戏状态更新不同步问题
怎么在浏览器上运行HTML文件_浏览器运行HTML文件技巧【技巧】
没有大陆身份证/银行卡如何实名微信? 亲测有效的几种方法分享
火狐浏览器占用内存高卡顿怎么办 火狐浏览器性能优化设置技巧
J*a最大堆Heapify方法修复:索引计算与边界条件深度解析
腾讯视频怎么使用多账号家庭管理_腾讯视频家庭多账号统一管理与权限分配教程
PostgreSQL海量数据高效导入策略:Python与Django实践指南
C++ typeid如何获取类型信息_C++ RTTI运行时类型识别用法
c++中的const_cast和reinterpret_cast怎么用_c++四种类型转换
C++ map遍历方法大全_C++ map迭代器使用总结
Spring Boot嵌入式服务器与J*a EE:功能支持深度解析
J*aScript 字符串标签转换:使用正则表达式高效替换
Win10系统怎么查看已安装更新_Win10卸载有问题的更新补丁
期待已久:小米17 Ultra、小米首款NAS本月登场
抖音商城签到领现金是真的吗_抖音商城签到奖励与提现说明
荣耀Play7TPro怎样在信息App置顶客服对话_iPhone荣耀Play7TPro信息App置顶客服对话【优先查看】
曝R星经典之作开发图 设计简陋但信息密集!
cad怎么合并重叠的线段_cad清理重复重叠线条的操作方法
sublime怎么进行远程开发编辑_配置rsub/rmate实现sublime编辑服务器文件
QQ邮箱网页版邮箱入口 QQ邮箱官方登录平台
J*aScript生成器_j*ascript异步迭代
Yandex搜索引擎官方地址 俄罗斯网络世界的主要入口
使用CSS更改登录屏幕输入框中PNG图标颜色的策略与局限性
在J*a中如何开发在线活动报名与管理系统_活动报名管理项目实战解析
顺丰快件物流信息 官方网站查询入口
QQ邮箱正确登录入口_QQ邮箱官方网站使用地址
AO3最新镜像入口 Archive of Our Own官方平台访问
韩小圈电脑版在线入口_网页版免费登录地址
windows10怎么查看硬盘序列号_windows10硬盘id查询命令
Windows电脑怎么截图最方便_系统自带截图工具的5种神仙用法【技巧】
vivo浏览器自带的下载器速度慢怎么办 vivo浏览器提升文件下载速度的技巧
Composer的 "check-platform-reqs" 命令有什么用_在部署前检查生产环境是否满足Composer依赖需求
2025AO3夸克浏览器通道_AO3手机HTTPS安全入口分享


2025-12-13
浏览次数:次
返回列表