redis主从同步,显示master_link_status:down的解决思路

Posted

tags:

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

当通过info replication指令查看到master的连接状态为:master_link_status:down时。肯定要先瞅瞅日志。
下面是两个可能造成master连接状态为down的日志信息:

  • 日志中有大量的I/O error trying to sync with MASTER:connection lost字样。
  • 日志持续输出Unable to AUTH to MASTER: -ERR Client sent AUTH, but no password is set,这个翻译一下就知道咯,和master的授权密码不匹配。

下面就单独说一下第一个错误日志信息怎么解决。
通过资料发现,是client-output-buffer-limit这个参数配置不当造成的。配置文件中关于此配置的注释如下:
一旦达到硬限制或者达到软限制并保持达到指定的秒数(连续)。客户端将立即断开连接,比如硬限制是32MB软限制是16MB,时间是10s,如果输出缓冲区的大小达到32MB,客户端将立即断开连接,或者客户端达到16MB并持续时间为10s,客户端同样会断开连接。
关于client-output-buffer-limit参数的配置格式在配置文件注释中也有示例,如下:

client-output-buffer-limit <class> <hard limit> <soft limit> <soft seconds>

注:该配置项默认存在配置文件中,对于不同的版本,class对应的可能不一样,可能是slave,可能是replication,不用过多纠结这个。

这里修改这个限制有两种方式:
1.修改配置文件 client-output-buffer-limit,要重启redis生效。
2.在redis命令行中config set client-output-buffer-limit ‘slave 512mb 128mb 120’但是下次重启redis会失效。

所以最好的方法就是做了步骤1之后再把步骤2给做了。

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

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

聊聊 Redis 主从同步

Redis 的主从同步(复制)

深入剖析redis主从同步机制

Redis 主从架构数据同步

redis主从同步机制