Redis集群报错Node Is Not Empty,Either The Node Already Knows Other Nodes

redis通过redis-trib.rb create –replicas命令创建集群时报一下异常:

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

常见执行命令如下:

[sercom@smscappsvr02 bin]$ ./redis-trib.rb create 10.161.1.150:6379 10.161.1.149:6379 10.161.1.154
>>> Creating cluster
[ERR] Node 10.161.1.149:6379 is not empty. Either the node already knows other nodes (check with CLUSTER NODES) or contains some key in database 0.

导致异常的主要原因是该节点中默认生成的配置或历史存储数据不一致导致的,清除对应节点的dump.rdb、nodes.conf文件,重启之后即可。

dump.rdb是由Redis服务器自动生成的 默认情况下 每隔一段时间redis服务器程序会自动对数据库做一次遍历,把内存快照写在一个叫做“dump.rdb”的文件里,这个持久化机制叫做SNAPSHOT。有了SNAPSHOT后,如果服务器宕机,重新启动redis服务器程序时redis会自动加载dump.rdb,将数据库状态恢复到上一次做SNAPSHOT时的状态。

解决步骤:

1、停止服务,删除aof/rdb文件;【删了之前所有缓存数据会丢失,慎重慎重,血与泪的教训!!!

2、删除nodes.conf

3、启动服务

4、启动集群

posted @ 2022-06-29 14:40  风吹稻香  阅读(2403)  评论(0编辑  收藏  举报