新闻详情

新闻详情

首页 / 资讯中心 / 详情

【Redis】【中篇】持久化与内存管理 —— RDB/AOF 底层原理及淘汰策略剖析

发布时间:2026/9/5 3:42:32来源:尧图网络
【Redis】【中篇】持久化与内存管理 —— RDB/AOF 底层原理及淘汰策略剖析
继续我们的 Redis 内核探索之旅。本章我们不讲业务只聊数据安全性与内存韧性。 中篇目录提问六Redis 的持久化机制底层原理和配置方式RDB 持久化修改数据是如何保证异步子进程数据冲突的提问七Redis 过期策略有哪三种为什么选择惰性删除和定期删除策略提问八Redis 的内存淘汰策略和过期策略区别有哪些策略六、Redis 的持久化机制底层原理和配置方式RDB 持久化修改数据是如何保证异步子进程数据冲突的Redis 提供了两种核心持久化机制RDB快照与AOF日志以及 4.0 版本引入的混合持久化。1. RDBRedis DataBase—— 全量快照原理在触发条件如save 900 1满足时主进程fork()一个子进程由子进程将当前内存数据写入一个压缩的二进制 RDB 文件。配置confsave 900 1 save 300 10 save 60 10000 dbfilename dump.rdb rdbcompression yes2. AOFAppend Only File—— 写命令日志原理将每一条写命令如SET、HSET以文本格式追加到 AOF 文件末尾。核心同步策略appendfsyncalways每次写入都刷盘最安全最慢。everysec每秒刷盘一次推荐最多丢 1 秒数据。no交由操作系统调度最快但可能丢大量数据。AOF 重写当 AOF 文件膨胀时触发后台重写bgrewriteaof瘦身。3. 混合持久化Redis 4.0配置aof-use-rdb-preamble yes。AOF 重写时文件头部直接写入 RDB 格式的快照尾部追加增量 AOF 日志重启时恢复速度极快。4. 如何保证异步子进程数据不冲突写时复制 COW这是最精妙的设计执行bgsave或bgrewriteaof时主进程fork()子进程父子进程共享同一份物理内存页表。父进程继续处理写入请求。当父进程要修改某个内存页时操作系统触发写时复制Copy-On-Write将该页物理内存复制一份副本给父进程修改。子进程从头到尾读取的都是fork()那一刻的旧内存页快照。两者互不干扰完美解决数据冲突七、Redis 过期策略有哪三种为什么选择惰性删除和定期删除策略理论上的三种删除策略定时删除Key 过期立即创建定时器删除。对 CPU 极不友好被 Redis 抛弃。惰性删除访问 Key 时才检查是否过期过期则删除。对 CPU 友好对内存不友好过期但永不访问的 Key 会常驻内存。定期删除每隔 100ms由hz参数控制随机抽取一批设置了 TTL 的 Key 检查删除。折中方案。Redis 最终选择惰性删除守门员 定期删除巡逻队这是一种CPU 与内存的务实权衡用惰性删除保证 CPU 绝对不被额外消耗。用定期删除默认每秒 10 次每次抽 20 个 Key删除超过 5 个则继续循环但总耗时不超过 25ms防止内存被过期 Key 撑爆。两者结合确保系统在面对千万级 Key 时依然稳定高效。八、Redis 的内存淘汰策略和过期策略区别有哪些策略核心区别面试高频陷阱过期策略Expiration处理TTL 到达 0的 Key是主动清理“垃圾”。淘汰策略Eviction处理内存达到maxmemory上限时的窘境无论 Key 是否过期强制“扔东西”腾空间。Redis 的 8 种内存淘汰策略分类策略名称行为默认noeviction拒绝写入返回错误默认策略全键Allkeysallkeys-lru淘汰最近最少使用的 Key最推荐全键allkeys-lfu淘汰访问频率最低的 Key4.0更精准全键allkeys-random随机淘汰过期键Volatilevolatile-lru只在有 TTL 的 Key 中淘汰 LRU过期键volatile-lfu只在有 TTL 的 Key 中淘汰 LFU过期键volatile-random只在有 TTL 的 Key 中随机淘汰过期键volatile-ttl淘汰剩余生存时间最短的 Key调优参数maxmemory-samples 5默认采样 5 个调高至 10 可提升淘汰精准度但稍耗 CPU。 中篇总结与预告中篇我们剥开了持久化的外衣看到了fork()与写时复制的操作系统级魔法也理清了过期与淘汰的本质区别。下篇终章我们将直面缓存架构师的终极考验五种数据类型的场景博弈、分布式锁的 Redisson 底层原理、排行榜算法以及如何用布隆过滤器、互斥锁、熔断降级彻底干掉缓存三大杀手穿透、击穿、雪崩。
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

从语言模型到世界模型:AI如何突破科学发现的瓶颈 2026/9/5 4:15:37

从语言模型到世界模型:AI如何突破科学发现的瓶颈

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
SlopCodeBench评测标准:AI编程助手代码质量与安全性深度解析 2026/9/5 4:15:37

SlopCodeBench评测标准:AI编程助手代码质量与安全性深度解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
LC谐振从原理到工程实践:Q值、滤波器、晶振电容与LLC全解析 2026/9/5 4:15:37

LC谐振从原理到工程实践:Q值、滤波器、晶振电容与LLC全解析

1. 从LC谐振说起:一个被低估的基础电路 LC谐振这个名词,在电子工程里属于“基础得不能再基础”的知识点。大学电路课本里有一章专门讲它,面试硬件工程师时HR也爱问它——但说实话,很多人对它的理解停留在“串联并联有个公式、能选…

阅读更多 →
在线咨询服务系统实战指南:从架构设计到部署经验 2026/9/5 4:15:37

在线咨询服务系统实战指南:从架构设计到部署经验

在线咨询服务系统实战指南:从架构设计到部署经验 在知识付费、技能分享和本地生活服务需求集中爆发的当下,一套成熟的在线咨询服务系统早已不是单纯的“聊天窗口下单按钮”。它既要承接用户从浏览、咨询、预约、支付到服务完成的完整业务闭环&#xff0c…

阅读更多 →
从零开发大学生电动方程式赛车算法:架构与状态估算实战指南 2026/9/5 4:15:37

从零开发大学生电动方程式赛车算法:架构与状态估算实战指南

从零开始开发一套大学生电动方程式赛车算法,这个选题我其实盯了很久。每年那批参加大学生电动方程式大赛(FSAE)的车队里,真正能把“算法”这件事讲清楚的帖子少得可怜,大多数人的认知还停留在“写个PID控制电机”或者“…

阅读更多 →
达人营销服务的产品化:AI带来的不只是效率变化 2026/9/5 4:12:37

达人营销服务的产品化:AI带来的不只是效率变化

AI进入达人营销,常被放在执行效率的框架中讨论:更快整理信息、更快理解需求、更快形成候选名单。但如果一部分原本依靠媒介人员提供的能力可以通过工具获得,变化就不只发生在执行速度上,也发生在专业服务的供给方式上。当品牌能够…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞