Redis集群启动问题
Redis集群启动问题
- 1、问题描述
- 2、问题分析
- 3、问题解决
- 4、总结
1、问题描述
[ERR] Node 192.168.43.175:7001 is not empty. Either the node already knows other nodes (check with CLUSTER NODES) or contains some key in database 0.
2、问题分析
这是由于redis
集群在关闭的时候是非正常关闭,也就是俗称的宕机。redis
服务器没来得及保存相关数据导致信息丢失。所以需要删除在本地的备份文件,重新启动服务器。
3、问题解决
由于要删除数据,这里直接简单粗暴的将redis
进程杀死即可。首先通过ps -ef | grep redis
命令获取redis
进程的基本信息。然后直接将进程kill
,注意:这里kill
的是cluster
进程。再次运行ps -ef | grep redis
命令,验证进程已经被强制终止。按照这个方法,依次将集群中其他redis
服务器中止。
然后进入redis
服务器本地文件所在目录,笔者的目录为/var/redis
。我们选择进入一个服务器目录,如7001
,我们发现里面有nodes.conf
等文件,我们需要将这些文件全部删除。运行rm -rf *
,再次查看该文件夹,发现我们的文件已经被删除。按照这个方法依次将集群中的文件全部删除即可。
然后依次启动服务器。运行./redis_7001 start
。出现/var/run/redis_7001.pid exists, process is already running or crashed
问题。需要将其删除。运行rm -rf /var/run/redis_7001.pid
。再次启动服务器。服务器可以正常启动了。
最后再次运行集群启动命令/usr/local/bin/redis-trib.rb create --replicas 1 192.168.43.175:7001 192.168.43.175:7002 192.168.43.176:7003 192.168.43.176:7004 192.168.43.177:7005 192.168.43.177:7006
。即可成功启动整个集群。
4、总结
如果不是异常或其他特殊情况,一定要正常关闭redis
集群,这样再次启动会避免很多麻烦。可能写的有点啰嗦。但是要是以前有博主可以一步一步的写出来,我也不至于花很长时间调试了,不说了,都是泪。继续搬砖了。
点个赞再走呗!欢迎留言哦!
还没有评论,来说两句吧...