2018 年 1 月 22 日 10:35 redis集群动态添加主节点和从节点 原创 2017年02月22日 09:58:39 标签: redis集群
/ 动态添加集群
/ redis 2473
如上图所示:我现在有 6 台机器的 redis 集群,端口为 7002 , 7003 , 7004 为主,端口为 7001 , 7005 , 7006 为从节点
现在准备了两个没有在集群中的 redis 服务: 7007 和 7008 ;
ok
现在让我们开始把 7007 和 7008 添加到集群中
第一步:运行下 ./redis-trib.rb 看命令是否正常,这个命令是用 ruby 写的所以如果不正常请安装 ruby.
安装 ruby 步骤 1:yum install ruby 2:yum install rubygems 3:gem install redis ( 安装 redis 和 ruby
的接口 ) 第二步:
执行命令
./redis-trib.rb
add-node new_host:new_port existing_host:existing_port 说明:new_host:需要加入集群的redis服务ip地址 如本例中是:192.168.142.128
new_port: 需要加入集群的 redis 服务 ip 端口
如本例中是: 7007 和 7008 existing_host: 集群中已存在的任何一个 redis
ip 地址 如本例中的 192.168.142.128
existing_port :集群中已存在的任何一个 redis
端口 如本例中的 7001 、 7002 、 7003 、 7004 、 7005 、 7006 执行命令./redis-trib.rb add-node 192.168.142.128:7007 192.168.142.128:7001 如下:添加 7007 成功。
现在我们再来看下集群节点信息如下
端口为 7007 的 redis 已经成功的加入到集群中,但是他这个主节点没有空间槽。我们还需要进行第三步给这个节点 非配空间槽
第三步:给新加入节点分配空间槽
1 :执行命令 ./redis-trib.rb reshard 192.168.142.128:7007
执行命令如上图所示:问你是否从原有的 1-16384 个槽中分配多少到新的主节点我们这里分配 4000 为例回车
2 :然后紧接着会询问你给 id 为谁的主节点分配,我们这里 copy 这个 id 就行
3 :询问你是从所有的空间去给这个节点分配空间还是从某一个节点分配 我这里输入 all
回车继续
4 :然后会给你分配出一个分配计划,输入 yes 开始分配。完成 ok
我们再来看下 7007 已经分配了 4000 个空间槽 。
第四步:我们把端口为 7008 的 redis 添加到集群,把它作为
7007 的从节点 重复第二步命令: ./redis-trib.rb
add-node 192.168.142.128 : 7008 192.168.142.128 : 7002
添加成功。
最后一步: 需要登录新加入的 7008redis ,执行命令 cluster replicate
主节点 id (就是你想把这个从节点 放到那个主节点下面) ok
完成如上图所示集群信息
测试:
如上图所示 添加集群完成。 而且测试发现:空间槽的分配是不分有没有数据的,有数据的槽也有可能分配到新的主节点下
来自
< http://blog.csdn.net/woshimike/article/details/56479773
已使用 Microsoft OneNote 2016 创建。