Redis 3.0集群(二)
Redis 3.0集群(二)
仝玉甫 发表于2年前
Redis 3.0集群(二)
  • 发表于 2年前
  • 阅读 3338
  • 收藏 97
  • 点赞 0
  • 评论 2

腾讯云 十分钟定制你的第一个小程序>>>   


 在Redis 3.0集群(一)中讲了Redis集群的基本搭建。这一节主要讲对Redis集群的操作。

添加Master节点到集群

  • 按照Redis集群一的方式,创建端口为7006的新实例,并启动该实例

  • 将7006添加到集群:

redis-trib.rb add-node 127.0.0.1:7006 127.0.0.1:7000

    node:新节点没有包含任何数据, 因为它没有包含任何slot。新加入的加点是一个主节点, 当集群需要将某个从节点升级为新的主节点时, 这个新节点不会被选中。

  • 给新节点分配哈希槽:

redis-trib.rb reshard 127.0.0.1:7000
#根据提示选择要迁移的slot数量(ps:这里选择500)
How many slots do you want to move (from 1 to 16384)? 500
#选择要接受这些slot的node-id
What is the receiving node ID? f51e26b5d5ff74f85341f06f28f125b7254e61bf
#选择slot来源:
#all表示从所有的master重新分配,
#或者数据要提取slot的master节点id,最后用done结束
Please enter all the source node IDs.
  Type 'all' to use all the nodes as source nodes for the hash slots.
  Type 'done' once you entered all the source nodes IDs.
Source node #1:3375be2ccc321932e8853234ffa87ee9fde973ff
Source node #2:done
#打印被移动的slot后,输入yes开始移动slot以及对应的数据.
#Do you want to proceed with the proposed reshard plan (yes/no)? yes
#结束
  • 查看操作结果:

redis-cli -c -p 7000
cluster nodes

    可以看到返回的集群信息中,7006拥有了0-999哈希槽。

添加Slave节点到集群

  • 按照Redis集群一的方式,创建端口为7007的新实例,并启动该实例

  • 将7007添加到集群:

redis-trib.rb add-node 127.0.0.1:7007 127.0.0.1:7000
  • 设置为7006的slave:

redis-cli -c -p 7007
#参数为master节点的ID
cluster replicate 2b9ebcbd627ff0fd7a7bbcc5332fb09e72788835

删除一个Slave节点

#redis-trib del-node ip:port '<node-id>'  
redis-trib.rb del-node 127.0.0.1:7007 'c7ee2fca17cb79fe3c9822ced1d4f6c5e169e378'

删除一个Master节点

删除master节点之前首先要使用reshard移除master的全部slot,然后再删除当前节点(目前只能把被删除master的slot迁移到一个节点上)

redis-trib.rb reshard 127.0.0.1:7006
#根据提示选择要迁移的slot数量(ps:这里选择500)
How many slots do you want to move (from 1 to 16384)? 500
#选择要接受这些slot的node-id
What is the receiving node ID? f51e26b5d5ff74f85341f06f28f125b7254e61bf
#选择slot来源:
#all表示从所有的master重新分配,
#或者数据要提取slot的master节点id,最后用done结束
Please enter all the source node IDs.
  Type 'all' to use all the nodes as source nodes for the hash slots.
  Type 'done' once you entered all the source nodes IDs.
Source node #1:3375be2ccc321932e8853234ffa87ee9fde973ff
Source node #2:done
#打印被移动的slot后,输入yes开始移动slot以及对应的数据.
#Do you want to proceed with the proposed reshard plan (yes/no)? yes
#结束

#删除空master节点
redis-trib.rb del-node 127.0.0.1:7006 'c7ee2fca17cb79fe3c9822ced1d4f6c5e169e378'


标签: redis 集群
共有 人打赏支持
粉丝 6
博文 11
码字总数 8826
评论 (2)
AkataMoKa
好文,赞!
蒋默
删除一个Master节点时,Source node #1:3375be2ccc321932e8853234ffa87ee9fde973ff.这个应该是你移除的master的节点的ID吧?意思是从这个节点移除500个slot。

#删除空master节点
redis-trib.rb del-node 127.0.0.1:7006 'c7ee2fca17cb79fe3c9822ced1d4f6c5e169e378' 你这个ID怎么和上面移除的ID不一样??
×
仝玉甫
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: