Redis集群启动问题

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集群,这样再次启动会避免很多麻烦。可能写的有点啰嗦。但是要是以前有博主可以一步一步的写出来,我也不至于花很长时间调试了,不说了,都是泪。继续搬砖了。

点个赞再走呗!欢迎留言哦!

发布了22 篇原创文章 · 获赞 4 · 访问量 22万+

猜你喜欢

转载自blog.csdn.net/qq_32510597/article/details/105464624
今日推荐