我有一个redis集群(版本3.0.6),它有3个主服务器和3个从服务器。我想附加2个新节点并注销2个旧节点(1个主节点和1个从节点)。
假设现有IP如下所示,
1.2.3.1:6379-母版1
1.2.3.2:6379-母版2
1.2.3.3:6379-母版3
1.2.3.4:6379-从1
1.2.3.5:6379-从2
1.2.3.6:6379-从3
新节点为1.2.3.7:6379和1.2.3.8:6379
我遵循的步骤如下:,
更改时检查现有组合
...redis-trib.rb check 1.2.3.1:6379
将节点作为从节点添加到现有主节点
...redis-trib.rb add-node --slave 1.2.3.7:6379 1.2.3.1:6379
再次检查
...redis-trib.rb check 1.2.3.1:6379
从群集中移除旧的从属服务器。最后一个参数是节点id
...redis-trib.rb del-node 1.2.3.4:6379 12345abcssddd
再检查一遍
...redis-trib.rb check 1.2.3.1:6379
然后通过redis cli登录到1.2.3.7节点并升级到主节点。
redis cli群集故障转移接管
现在新的节点(1.2.3.7:6379)是主节点,以前的主节点变成了从节点。
再次检查节点
...redis-trib.rb check 1.2.3.7:6379
现在将第二个新节点作为从节点添加到新的主节点
...redis-trib.rb add-node --slave 1.2.3.8:6379 1.2.3.7:6379
检查
...redis-trib.rb check 1.2.3.7:6379
从 Jmeter 盘上拆下最后一个机头。最后一个参数是节点id
...redis-trib.rb del-node 1.2.3.1:6379 12ejdbfjdj123
通过执行这些步骤,可以正确地向集群添加新节点并从集群中删除旧节点。但我的问题是,当我们执行del node命令时,它会停止相应节点中的redis服务。但一旦我们在该服务器上启动redis服务,它就会自动添加到以前的集群中,而不需要任何参与。根据互联网上的文档,这个del node命令将对整个集群执行cluster forget命令,我们不需要手动对每个集群节点运行这个forget命令。
那么,这里的问题是什么?为什么这不适用于这种情况?我是否错过了上述步骤?
暂无答案!
目前还没有任何答案,快来回答吧!