redis 集群多了之后,发现现在的有些节点有些多余没用,或者达不到用那么多节点的情况,那么就可以进行 节点的移除, 5.0 版本由于不用 ruby 进行集群操作了,所以方式跟5.0以前有很多不同的地方

 

我以我机器上的 7008 节点为例

首先登录集群, 使用 cluster nodes 查看信息

获取到 7008 节点的ID(红圈中前面 8f111b3074341e145105d70bc27cf501553f239f

如何卸载redis集群 删除redis集群_redis5

 

 

 

 

执行下面命令(红色部分是7008节点的ID)

/usr/local/redis-5.0.5/bin/redis-cli --cluster del-node 192.168.58.129:7008 8f111b3074341e145105d70bc27cf501553f239f

 

出现以上信息代表成功

如何卸载redis集群 删除redis集群_数据_02

登录 7007 节点。查看节点信息

如何卸载redis集群 删除redis集群_集群_03

 

可以看到节点信息中已经没有 7008了

 

 

接着删除7007, 这个是一个主节点,删除起来比较麻烦一点,因为主节点分配了 slot槽, 所以这里我们必须先把 7007的slot槽放到其他的可用节点中去,然后再进行移除节点操作才行,不然会出现数据丢失问题

 

步骤一:把数据移动到其它主节点中去(目前只能把数据移到另外一个节点,没办法做到平均分配)

执行重新分片命令

/usr/local/redis-5.0.5/bin/redis-cli --cluster reshard 192.168.58.129:7007

打印以下信息

如何卸载redis集群 删除redis集群_redis5_04

 

弹出以下提示:

如何卸载redis集群 删除redis集群_集群_05

 

上面看到7007 哪里 只有 199 个slot 槽,这里就填 199

回车之后 出现 what is the receiving node ID? 意思是你想移动到那个节点上

如何卸载redis集群 删除redis集群_redis_06

 

我想移动到 7003的节点上,那么此处输入 7003节点的ID

如何卸载redis集群 删除redis集群_redis_07

 

回车

出现以下界面

如何卸载redis集群 删除redis集群_如何卸载redis集群_08

 

这里需要数据源,其实就是 7007 节点的ID,因为你是吧 7007 节点的数据放到其它地方去, 输入 7007 的ID,回车

如何卸载redis集群 删除redis集群_redis_09

 

出现以下界面,

如何卸载redis集群 删除redis集群_数据_10

 

其实是让你还可以选择源节点,但是我这里只要把 7007 节点分到其它地方就行,如果没有再把其它主节点分摊的需要,此处输入 done即可,否则输入其它节点的ID,最后输入 done

如何卸载redis集群 删除redis集群_redis_11

 

打印一堆信息,最后出现这个询问:

如何卸载redis集群 删除redis集群_集群_12

 

是否按照计划分配,输入yes

执行完成之后,输入 cluster nodes 查看节点信息

 

如何卸载redis集群 删除redis集群_集群_13

 

可以看到 7007 已经没有槽分配了

 

接下来,调用删除从节点的方式,删除主节点

/usr/local/redis-5.0.5/bin/redis-cli --cluster del-node 192.168.58.129:7007 861e1fcfd5c1f0b8b407fcda6bee0959d3ad2c10

 

如何卸载redis集群 删除redis集群_数据_14

移除成功,再次查看节点信息

如何卸载redis集群 删除redis集群_redis5_15

 

可以看到 7007 也没有了