redis学习之集群报错Node is not empty

时间:2023-03-09 02:23:28
redis学习之集群报错Node is not empty

遇到的问题及解决办法

在redis.conf里bind 真机ip后,接着重新执行每个redis.conf,最后再创建集群,但报错,如下图所示:
redis学习之集群报错Node is not empty
图中报的错即:

[ERR] Node 192.168.161.131:7000 is not empty. Either the node
already knows other nodes (check with CLUSTER NODES) or contains some
key in database 0.
这就奇怪了,于是我又去检查了一下redis.conf,ip我确实改过来了
redis学习之集群报错Node is not empty

想了一会发现这三个文件appendonly.aof dump.rdb nodes.conf是之前执行ip127.0.0.1时生成的,在我改为真机ip后在执行并没有生效。
redis学习之集群报错Node is not empty

这里解释一下dump.rdb文件:

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

知道原因后就好办了,解决办法:

1)将每个节点下aof、rdb、nodes.conf本地备份文件删除;
2)172.168.63.201:7001> flushdb #清空当前数据库(可省略)
3)之后再执行脚本,成功执行;