彻底解决:[ERR] Node is not empty. Either the node already knows other nodes

​ 今天在搭建Redis-cluster的时候爆了这样的错误,根据中文意思就是说这个节点不是空的,想表达的意思就是说搭建集群的时候,大家数据要一致,需要都为空。这里用到的办法是将所有Node的数据都清空。

参考了网上一些方法后,发现在实操的时候是有一点问题的,做了点改进,但是思路还是一样的,

总体来说就两个步骤:

  • 第一步:删除 appendonly.aof 和 dump.rdb,具体路劲因人而异,你可以在你配置文件的目录看到
  • 第二部(第一步之后如果还不行再做):删除所有节点的cluster-config-file,也就是节点配置文件,自动生成的,路劲也配置在conf文件中

步骤如下:

  1. 将所有节点shutdown,为什么呢,不然你删除完A节点的AOF和RDB文件后,没过多久他自己又重新生成,(免去了 在redis-cli中执行 flushdb 命令),下面是代码示例:

    关闭节点

    redis-cli -h 192.168.43.155 -p 7001 shutdown
    

    进入到持久化文件所在目录,并将其删除

    (如果这个目录下还有其他文件就把 * 换成你要删除的文件的文件名)

    [root@esshop-cach02 init.d]# cd 目标目录
    [root@esshop-cach02 7003]# rm -rf *
    
  2. 找到并删除cluster-config-file

    命令和上面一样,cd到目标路径之后再删文件,这里就不贴重复代码了

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐