redis主从同步,总是显示master_link_status:down的解决方法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了redis主从同步,总是显示master_link_status:down的解决方法相关的知识,希望对你有一定的参考价值。

前几天,在修改一台从节点的redis的监听端口后,重启了下redis,发现master_link_status:很长时间一直都是down状态。

查看了redis日志,发现日志里出现很多的“I/O error trying to sync with MASTER:connection lost‘”


百度了下,发现是client-output-buffer-limit slave这个参数配置不当造成的。

网上找到的相关说明:

# 这个参数太小的话,错误日志会显示I/O error trying to sync withMASTER: connection lost‘

# 这是说负责发数据给slave的client,如果buffer超过256m或者连续60秒超过64m,就会被立刻强行关闭!!! Traffic大的话一定要设大一点。否则就会出现一个很悲剧的循环,Master传输一个大的RDB给Slave,Slave努力的装载,但还没装载完,Master对client的缓存满了,再来一次。

 

解决方法:

# redis-cli -a ‘xxxxxxx‘  连接到redis服务器

> config set client-output-buffer-limit slave1024mb 256mb 0  这样动态修改下参数即可,省的重启redis,造成数据再次同步。

稍等片刻,执行 > info replication

如果master_link_status变成up了,说明我们的配置生效了。

然后,还要去修改下redis.conf里面的设置,免得重启redis后,修改的client-output-buffer-limit 配置丢失。

 


以上是关于redis主从同步,总是显示master_link_status:down的解决方法的主要内容,如果未能解决你的问题,请参考以下文章

[原创干货]动手实战实现Redis数据库主从同步

聊聊 Redis 主从同步

Redis 的主从同步(复制)

深入剖析redis主从同步机制

Redis 主从架构数据同步

redis主从同步机制