IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

标签:AOF

共 2 篇相关文章

IT 累计浏览 2,742

Redis被bgsave和bgrewriteaof阻塞的解决方法

这篇讲的是Redis在执行bgsave(后台保存RDB)和bgrewriteaof(后台重写AOF日志)时,可能出现的主线程阻塞问题。文章从一个实际生产环境中的性能抖动现象切入,揭示了问题的核心:当这两个后台持久化操作在fork子进程时,如果内存占用过大,会导致操作系统进行大量内存页拷贝,从而阻塞主线程,影响请求响应。 作者详细分析了问题的根因,不仅限于fork本身的开销,还指出了在内存紧张时,系统可能因内存交换(swap)导致性能急剧下降。针对这些痛点,文章给出了具体的排查思路和优化方案,包括调整`vm.overcommit_memory`参数、合理设置`repl-backlog-size`、监控系统内存交换指标,以及如何规划Redis实例的内存上限。这些方案都紧扣实际运维场景,提供了可落地的操作建议。 文章最后强调,持久化是Redis的可靠保障,但其执行策略需要与业务对延迟的容忍度相权衡。通过合理的参数配置和监控,可以在数据安全与服务性能之间找到平衡点。

IT 累计浏览 32,168

redis源代码分析 - persistence

这篇讲的是Redis如何通过持久化机制确保数据安全。作者深入源码,拆解了全量持久化与增量持久化两大核心路径的实现细节。 全量持久化(save/bgsave)的关键在于利用操作系统的fork机制创建子进程,通过写时复制(Copy-on-Write)来实现后台快照,避免了阻塞主进程。而增量持久化(AOF)则通过追加写命令日志,并依赖定期的重写(rewrite)机制来压缩文件体积,两者在数据恢复时协同工作。 文章分析了Redis在实现这些机制时所做的巧妙权衡:比如bgsave如何最小化内存峰值,AOF重写如何生成紧凑的新日志,以及fsync策略在性能与可靠性之间的不同选择。这种对底层实现的剖析,能让读者理解Redis为何能在高性能与数据持久性之间取得平衡。