MASTER timeout: no data nor PING received... 对于redis出现该问题,可以从调整repl-timeout时间和调大
repl_backlog大小为准,最好调整repl_backlog
repl_backlog
例如数据为:
127.0.0.1:16379> config get repl-backlog-size
1) "repl-backlog-size"
2) "1048576"
127.0.0.1:16379>
调大repl_backlog。
Redis中默认的repl_backlog大小为1M,这是一个比较小的值,我们的集群中曾经设置为100M,有时候还是会出现主从重同步现象,后来改为200M,一切太平。可以通过以下命令修改repl_backlog的大小:
//200Mredis-cli -h xxx -p xxx config set repl-backlog-size 209715200
config set timeout 1800
config set cluster-node-timeout 15000
对于参数配置cluster-require-full-coverage
- 槽是否全覆盖:cluster-require-full-coverage no。默认是yes,只要有结点宕机导致16384个槽没全被覆盖,整个集群就全部停止服务,所以一定要改为no
现网数据信息为:
[xxxxxxx]$ ./redis-cli -c -p 16379
127.0.0.1:16379> config get cluster-require-full-coverage
1) "cluster-require-full-coverage"
2) "yes"
127.0.0.1:16379>
127.0.0.1:16379> config get repl-timeout
1) "repl-timeout"
2) "60"
127.0.0.1:16379>
当cluster-require-full-coverage为no时,表示当负责一个插槽的主库下线且没有相应的从库进行故障恢复时,集群仍然可用,