redis client-output-buffer-limit 与主从同步遇到的问题
遇到的问题及说明
在一个生产项目中redis采用sentinel集群,在一次故障主从切换后,主从同步一直存在异常,在日志中发现有这样一条日志,不停的刷新。
在主从切换时,主库会进行rdb文件备份,备份完成后传给从库,从库load接收的文件。这期间主库的情况会存在一个复制积压缓存区中,等从库load完成后,主库把数据发给从库
上面的错误是在这个过程中积压缓存区写满,导致主库断掉从库连接,同步失败;从库发现失败后又重新支持slaveof;从而导致不停的断开,重连。
解决办法
解决办法是修改 client-output-buffer-limit,在redis配置文件中默认配置是client-output-buffer-limit slave 256mb 64mb 60,对于访问量很大或存储数据很多redis服务,这个设置太小了,需要调大或直接取消限制
登入master执行命令:config set client-output-buffer-limit 'slave 0 0 0' //取消限制
然后执行 config rewrite 将改动保存到redis配置文件
然后在修改slave的配置,避免再次故障切换出现同样的问题
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏