redis 集群 节点错误 redis集群 node is not empty

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.

原因:

节点不是第一次使用。该节点可能与其他节点组成集群,或者在数据库0中包含一些数据。

如果组成过集群,在上一次创建集群时候会生成备份的文件、日志log文件、配置和一些脚本。如appendonly.aof、dump.rdb、nodes.conf 等文件(注意src路径下的node.conf文件也要删除),直接删除即可(需要先停redis服务)。

注:

rdb文件是定时将内存中的数据持久化到dump.rdb文件中。(全量备份)

             对应conf配置文件中:dbfilename dump.rdb 

aof文件是监听Redis日志,监听到变化时将指令持久化到appendonly.aof文件中。(指令追加)

             对应conf配置文件中:appendfilename "appendonly.aof

nodes.conf 文件是redis运行时产生的节点配置文件。当启用集群模式配置cluster-enabled指令为yes时,每个节点实例都包含一个文件,这个文件存储该节点的配置,模式是nodes.conf。这个文件从来不会被手动创建,它是Redis集群实例启动的时候生成的,并且每次在需要的时候自动更新。

解决方法:

1.停止所有redis服务!(不停止服务直接删除文件无效!!!)

2.删除aof、rdb、nodes.conf 文件

3.重启redis服务。

4.必要的情况下执行flushdb。

附一个redis常见问题解决办法的链接
redis cluster集群常见错误问题记录_金麟十三少的博客-CSDN博客

Redis进阶 - 因异常断电导致的Redis Cluster Fail故障处理_小小工匠的博客-CSDN博客

你可能感兴趣的:(redis,数据库,缓存)