redis集群之添加节点

1. 添加主节点

集群创建成功后可以向集群中添加节点,下面是添加一个master主节点
添加7007结点,参考集群结点规划章节添加一个“7007”目录作为新节点。

执行下边命令:
./redis-trib.rb add-node 192.168.101.3:7007 192.168.101.3:7001

这里写图片描述

查看集群结点发现7007已添加到集群中:

这里写图片描述

2. hash槽重新分配

添加完主节点需要对主节点进行hash槽分配这样该主节才可以存储数据。
redis集群有16384个槽,集群中的每个结点分配自已槽,通过查看集群结点可以看到槽占用情况。

这里写图片描述

给刚添加的7007结点分配槽:
第一步:连接上集群
./redis-trib.rb reshard 192.168.101.3:7001(连接集群中任意一个可用结点都行)

第二步:输入要分配的槽数量

这里写图片描述

输入 500表示要分配500个槽
第三步:输入接收槽的结点id

这里写图片描述

这里准备给7007分配槽,通过cluster nodes查看7007结点id为15b809eadae88955e36bcdbb8144f61bbbaf38fb
输入:15b809eadae88955e36bcdbb8144f61bbbaf38fb

第四步:输入源结点id

这里写图片描述

这里输入all

第五步:输入yes开始移动槽到目标结点id

这里写图片描述

3 添加从节点

集群创建成功后可以向集群中添加节点,下面是添加一个slave从节点。
添加7008从结点,将7008作为7007的从结点。

./redis-trib.rb add-node --slave --master-id 主节点id 添加节点的ip和端口 集群中已存在节点ip和端口

执行如下命令:

./redis-trib.rb add-node --slave --master-id cad9f7413ec6842c971dbcc2c48b4ca959eb5db4  192.168.101.3:7008 192.168.101.3:7001
cad9f7413ec6842c971dbcc2c48b4ca959eb5db4  是7007结点的id,可通过cluster nodes查看。

这里写图片描述

注意:如果原来该结点在集群中的配置信息已经生成cluster-config-file指定的配置文件中(如果cluster-config-file没有指定则默认为nodes.conf),这时可能会报错:
[ERR] Node XXXXXX is not empty. Either the node already knows other nodes (check with CLUSTER NODES) or contains some key in database 0
解决方法是删除生成的配置文件nodes.conf,删除后再执行./redis-trib.rb add-node指令

查看集群中的结点,刚添加的7008为7007的从节点:

这里写图片描述

4 删除节点

./redis-trib.rb del-node 127.0.0.1:7005 4b45eb75c8b428fbd77ab979b85080146a9bc017

删除已经占有hash槽的结点会失败,报错如下:
[ERR] Node 127.0.0.1:7005 is not empty! Reshard data away and try again.

需要将该结点占用的hash槽分配出去(参考hash槽重新分配章节)。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 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、付费专栏及课程。

余额充值