redis集群添加节点(集群异常修复)

做这个的原因是我们生产环境中redis集群某一节点未加入到集群中
故障原因不知道 但是让我来修复 我这边模拟到的故障就是清除掉某一节点的集群配置文件中的内容 跟生产上的故障情况一摸一样
下面是我自己环境的redis集群信息 此时是正常的
在这里插入图片描述
在这里插入图片描述
接下来我停掉一个节点 就拿6388这个节点 然后清掉他的集群配置文件中的内容 操作就不截图了 用不到 然后重启 此时查看6388节点是这么显示的
redis集群添加节点(集群异常修复)_第1张图片
其他节点是这么显示的 生产中集群节点信息跟这个一样的异常
2ac09f33dac8bd482fe124fa4d125421bcab48d6 :0@0 slave,fail,noaddr 46a1d82e61db23fceba557838364225b26626d1a 1639036775836 1639036772809 2 disconnected
在这里插入图片描述
接下来开始修复步骤
进入到故障节点
执行flushdb 以及cluster reset redis(节点要加入集群的前提是节点以及数据要为空)
必须先清除key值 否则会报错
在这里插入图片描述
在这里插入图片描述
将redis节点加入集群
第一个ip:port 为需要添加的节点ip和端口 第二个ip:port为当前集群中的节点和端口
执行成功显示如下图
redis集群添加节点(集群异常修复)_第2张图片
此时进入节点查看 正常
在这里插入图片描述
可以看到加入进来是以master的身份 此时将他降为slave 指定一个master 找到一个没有slave的master 指定 后面的id是master的id 并不是通过ip:port
要指定哪个redis为slave 就进去哪个redis执行命令
在这里插入图片描述
此时再查看集群节点信息 已经变成slave 3maste 3slave
在这里插入图片描述
最后还有一个小问题就是 到其他节点查看节点信息 依然会有之前残留的信息
在这里插入图片描述
我这边知道的方法就是需要将redis停掉
到每个redis的集群配置文件 node.conf中将那一行删除 再启动redis 恢复正常
还可以通过forget命令删除 方法是
到显示异常的redis节点中 redis-cli连接
cluster forget id
多余的fail节点信息就会清除

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