redis cluster集群常见错误问题记录

错误信息一:

[ERR] Node 127.0.0.1:6379 is not empty. Either the node already knows other nodes (check with CLUSTER NODES) or contains some key in database 0.

 这个报错是因为集群配置信息有被修改后导致的,比如某个节点里的redis.conf配置有变更。

解决办法:删除集群启动生成的文件,包括日志log文件,rdb文件,temp文件,nodes-* .conf文件。(注:删除rdb文件,缓存数据库就没了,这个需谨慎,后续再看看怎么处理)重启集群即可

redis cluster集群常见错误问题记录_第1张图片

启动集群

redis cluster集群常见错误问题记录_第2张图片

 错误信息二:

redis 集群启动后,一段时间后,发现日志文件很大,导致磁盘爆满,存储空间不够。

过一天,log文件直接变几个G 。

解决方法

redis cluster集群常见错误问题记录_第3张图片

通过 ./redis-cli --cluster check 127.0.0.1:6379 -a 123456 ,查询master和slaver主从节点。

从节点有6382 6383 6384 三个端口 

 查看下日志,发现一直再无权限重复请求连接master节点

redis cluster集群常见错误问题记录_第4张图片

因此,我们给从节点的配置里,加上masterauth的密码,然后重新启动集群。

redis cluster集群常见错误问题记录_第5张图片

重启后,我们查看日志,发现已正常。日志文件大小不再剧增。

redis cluster集群常见错误问题记录_第6张图片

错误信息三:

Warning: Could not create server TCP listening socket #:6385: Name or service not known

解决方法:redis.conf配置文件里的bind参数改为0.0.0.0 

错误信息四:

添加新节点

[root@iZbp11qjms78wr7b18y6lbZ bin]# ./redis-cli --cluster add-node 121.40.83.196:6385 121.40.83.196:6386 -a 123456
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
>>> Adding node 121.40.83.196:6385 to cluster 121.40.83.196:6386
>>> Performing Cluster Check (using node 121.40.83.196:6386)
M: 9117dde0d27233c364dfde00a59934e9858e03df 121.40.83.196:6386
   slots: (0 slots) master
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[ERR] Not all 16384 slots are covered by nodes.
redis cluster集群常见错误问题记录_第7张图片

解决方法:

先修复节点

./redis-cli --cluster fix -a 123456 121.40.83.196:6379

重新分片

./redis-cli -a 123456 --cluster reshard 121.40.83.196:6379

添加节点

./redis-cli --cluster add-node 121.40.83.196:6380 121.40.83.196:6379 -a 123456
redis cluster集群常见错误问题记录_第8张图片
 

错误信息四: 

[ERR] Not all 16384 slots are covered by nodes. 

./redis-cli --cluster fix -a 123456 121.40.83.196:6385 

redis cluster集群常见错误问题记录_第9张图片

redis cluster集群常见错误问题记录_第10张图片

*** The specified node (569f6470718c6d248a484b56f4eb68d788c78331) is not known or not a master, please retry.

分片reshard是针对master节点,而不是slave 。所以要先把该节点的slot哈希槽,转移到其他master,再进行reshard。

错误信息五:

(error) ERR To set a master the node must be empty and without assigned slots.

redis cluster集群常见错误问题记录_第11张图片

 从master节点变为slave节点,需要把slot 哈希槽释放出来。把slot转移到其他master节点上。

释放前

redis cluster集群常见错误问题记录_第12张图片

释放操作过程

redis cluster集群常见错误问题记录_第13张图片

将6383挂在6379master节点下面

redis cluster集群常见错误问题记录_第14张图片 我们可以看到6383已经变成slave节点,且replcate 6379节点。

依次操作,将集群架构调整为四主四从。

redis cluster集群常见错误问题记录_第15张图片

 

 

 

 

 

 

 

你可能感兴趣的:(redis,数据库,redis,cluster集群)