redis集群添加删除节点

本文介绍如何在Redis3.0集群中添加和删除节点,包括将新节点配置为主节点或从节点的过程,以及删除节点前的数据迁移步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

redis集群添加删除节点
Redis3.0集群添加节点

1:首先把需要添加的节点启动

cd /usr/local/cluster/

mkdir 7006

cp /usr/local/cluster/redis.conf /usr/local/cluster/7006/

cd /usr/local/cluster/7006/

vi redis.conf

##修改redis.conf中的port参数的值为7006

redis-server redis.conf

2:执行以下命令,将这个新节点添加到集群中

cd /usr/local/redis3.0/src/

./redis-trib.rb add-node 192.168.1.160:7006 192.168.1.160:7000

3:执行命令redis-cli -c -p 7000 cluster nodes,查看刚才新增的节点

4:增加了新的节点之后,这个新的节点可以成为主节点或者是从节点

4.1 把这个节点变成主节点,使用redis-trib程序,将集群中的某些哈希槽移动到新节点里面, 这个新节点就成为真正的主节点了。

执行下面的命令对集群中的哈希槽进行移动

cd /usr/local/redis3.0/src

./redis-trib.rb reshard 192.168.1.160:7000

系统会提示我们要移动多少哈希槽,这里移动1000个

然后还需要指定把这些哈希槽转移到哪个节点上,

输入我们刚才新增的节点的ID

f32dc088c881a6b930474fc5b52832ba2ff71899

然后需要我们指定转移哪几个几点的哈希槽

输入all 表示从所有的主节点中随机转移,凑够1000个哈希槽

然后再输入yes,redis集群就开始分配哈希槽了。

至此,一个新的主节点就添加完成了,执行命令查看现在的集群中节点的状态

redis-cli -c -p 7000 cluster nodes

4.2:把这个节点变成从节点

前面我们已经把这个新节点添加到集群中了,现在我们要让新节点成为192.168.1.160:7001的从节点,只需要执行下面的命令就可以了,命令后面的节点ID就是192.168.1.160:7001的节点ID

redis-cli -c -p 7006 cluster replicate 0b00721a509444db793d28448d8f02168b94bd38

使用下面命令来确认一下192.168.1.160:7006是否已经成为192.168.1.160:7001的从节点

redis-cli -p 7000 cluster nodes | grep slave | grep 0b00721a509444db793d28448d8f02168b94bd38

看到下面图片中的情况就表示添加成功



Redis3.0集群删除节点

1:如果删除的节点是主节点,这里我们删除192.168.1.160:7006节点,这个节点有1000个哈希槽

首先要把节点中的哈希槽转移到其他节点中,执行下面的命令

cd /usr/local/redis3.0/src

./redis-trib.rb reshard 192.168.1.160:7000

系统会提示我们要移动多少哈希槽,这里移动1000个,因为192.168.1.160:7006节点有1000个哈希槽

然后系统提示我们输入要接收这些哈希槽的节点的ID,这里使用192.168.1.160:7001的节点ID

然后要我们选择从那些节点中转出哈希槽,这里一定要输入192.168.1.160:7006这个节点的ID,最后输入 done 表示输入完毕

最后一步,使用下面的命令把这个节点删除

cd /usr/local/redis3.0/src/

./redis-trib.rb del-node 192.168.1.160:7000 需要删除的节点ID

2:如果节点是从节点的,直接使用下面的命令删除即可。

cd /usr/local/redis3.0/src/

./redis-trib.rb del-node 192.168.1.160:7000 需要删除的节点ID

原文https://www.cnblogs.com/huxinga/p/6637253.html

### 如何向 Redis 集群添加节点Redis 集群环境中,可以通过一系列命令和操作来实现新节点添加。以下是关于如何向 Redis 集群添加节点的具体方法以及最佳实践。 #### 创建节点目录并配置环境 为了确保新节点能够正常运行,在添加之前需要完成必要的准备工作。例如,创建一个新的工作目录用于存储该节点的数据文件,并将现有的 `redis.conf` 文件复制到此目录下[^3]。随后根据实际需求调整配置参数,特别是端口号(Port),以避免与其他现有节点冲突。例如: ```bash mkdir /data/redis-7007 cp /path/to/existing-redis.conf /data/redis-7007/ sed -i 's/port 6379/port 7007/' /data/redis-7007/redis.conf ``` 上述脚本展示了如何通过修改默认端口设置为新的目标端口 (此处设为7007)[^1]。 #### 启动新节点的服务进程 一旦完成了基本配置之后,则需启动这个新实例使其处于待命状态等待加入集群: ```bash redis-server /data/redis-7007/redis.conf ``` 这一步骤使得指定路径下的 redis 实例依据所定义好的各项属性开始运作起来[^4]。 #### 使用 CLI 工具执行 ADD-NODE 命令 当确认新节点已经成功上线后, 可利用官方提供的工具 `redis-cli`, 结合特定选项发起请求让其正式融入整个分布式体系之中 : ```bash ./redis-cli --cluster add-node <new_node_ip>:<new_node_port> <existing_cluster_node_ip>:<existing_cluster_node_port> ``` 比如要将 IP 地址为 "127.0.0.1", 端口号设定成 "7007" 的主机纳入由另一台位于相同地址但监听于不同端口(即 "6379")构成的部分当中去的话 , 应该这样写入指令 [^5]: ```bash ./redis-cli --cluster add-node 127.0.0.1:7007 127.0.0.1:6379 ``` 需要注意的是如果单纯只是增加了一个全新的 Master 节点而没有任何 Slot 分配给它的话 ,那么即使表面上看起来好像已经被接受成为了成员之一但实际上并不能真正意义上参与到数据处理流程里头因为缺少对应的哈希区间归属信息 。因此还需要进一步采取措施解决这个问题 —— 即手动或者自动地迁移部分 Key 到这位后来者身上以便平衡负载压力同时提高整体性能表现水平 . #### 处理可能出现的问题——槽位不足的情况 有时候可能会遇到错误消息 `[ERR] Not all 16384 slots are covered by nodes.` 提醒说当前所有的 Hash Slots 并未完全得到覆盖 . 如果你的原有架构里面已经有足够的 Masters 来承担全部范围内的职责并且不想破坏这种均衡布局的话 , 那么此时可以考虑先暂时忽略这条警告继续往下走 ; 不过更推荐的做法还是应该合理安排一下这些额外资源的位置关系从而达到最优解的效果 [^3]. ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值