当通过info replication指令查看到master的连接状态为:master_link_status:down
时。肯定要先瞅瞅日志。
下面是两个可能造成master连接状态为down的日志信息:
下面就单独说一下第一个错误日志信息怎么解决。
通过资料发现,是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给做了。