redis集群动态添加主节点和从节点


如上图所示:我现在有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 完成如上图所示集群信息
 
测试:

如上图所示 添加集群完成。
而且测试发现:空间槽的分配是不分有没有数据的,有数据的槽也有可能分配到新的主节点下
  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
添加 Redis节点,您需要执行以下步骤: 1. 首先,启动一个Redis 实例,并将其配置为从节点。假设您已经安装了 Redis,可以通过以下命令启动一个Redis 实例: ``` redis-server /path/to/redis.conf --port 6381 --slaveof master_node_ip master_node_port ``` 在此命令中,您需要将 `/path/to/redis.conf` 替换为您的 Redis 配置文件路径,`--port` 参数指定了 Redis 实例的端口号,`--slaveof` 参数指定了 Redis 实例的节点 IP 地址和端口号。 2. 然后,将Redis节点添加集群中。您可以使用 `redis-cli` 工具执行此操作。假设您已经有一个包含多个节点Redis 集群,并且其中一个节点的 IP 地址为 `192.168.1.100`,可以使用以下命令将Redis节点添加集群中: ``` redis-cli --cluster add-node new_node_ip:new_node_port existing_node_ip:existing_node_port --cluster-slave --cluster-master-id master_id ``` 在此命令中,`new_node_ip` 和 `new_node_port` 分别是 Redis 节点的 IP 地址和端口号,`existing_node_ip` 和 `existing_node_port` 则是集群中已有节点的 IP 地址和端口号。`--cluster-slave` 参数指定了节点是从节点,`--cluster-master-id` 参数指定了节点节点 ID,您需要将其替换为实际的节点 ID。 3. 最后,将节点加入到节点的从节点列表中。您可以使用以下命令将节点加入到节点的从节点列表中: ``` redis-cli --cluster replicate master_id new_node_ip:new_node_port ``` 在此命令中,`master_id` 是节点的 ID,您需要将其替换为实际的节点 ID,`new_node_ip` 和 `new_node_port` 分别是 Redis 节点的 IP 地址和端口号。 完成以上步骤后,您已经成功地将Redis节点添加集群中,并将其加入到节点的从节点列表中。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值