Redis新集群操作(在已有的集群上添加新节点)

来源:互联网 发布:mac设置airdrop 编辑:程序博客网 时间:2024/06/04 23:28

我就在我已有的一台centos7.0,添加新的集群节点
1、创建7003/7004文件夹。

这里写图片描述

2、拷贝配置文件、拷贝redis.conf文件到对于的7003,7004目录下

这里写图片描述

3、修改配置文件7003、7004同样方式。
vim redis.conf

修改内容如下:
port:7003
pidfile /var/run/redis_7003.pid
cluster-config-file nodes_7003.conf

或者用vim命令,全部替换(无疑我们只是替换端口号而已):%s/7001/7003/g

4、启动redis
这里写图片描述

接下来是使用redis-trib.rb命令

1 create:创建一个集群环境host1:port1 … hostN:portN(集群中的主从节点比例)
2 call:可以执行redis命令
3 add-node:将一个节点添加到集群里,第一个参数为新节点的ip:port,第二个参数为集群中任意一个已经存在的节点的ip:port
4 del-node:移除一个节点
5 reshard:重新分片
6 check:检查集群状态

5、添加到集群
这里写图片描述

看到
这里写图片描述
表示添加成功。

6、再次查看集群状态
这里写图片描述
注意:当添加节点成功以后,新增的节点不会有任何数据,因为它没有分配任何的slot(hash槽)。我们需要为新节点手工分配slot。
7、为7007分配slot槽。
步骤一:使用redis-trib命令,找到集群中的任意一个主节点(红色位置表现集群中的任意一个主节点),对其进行重新分片工作。
./redis-trib.rb reshard 192.168.3.231:7001
这里写图片描述
【注意这里提示,重新分配多少个槽出来,我这里就输入200(然后回车)】

这里写图片描述
【提示将重新【分配出来的槽,添加给谁,写id,我这里添加到192.168.3.231:7003这里。】】

这里写图片描述
【是否平均分配出来】直接填all(平均分配)

这里写图片描述
【时候确定分片】yes
等待完成,查看节点信息。看7003是否分配到槽了。
这里写图片描述
【说明已经分配。同样的方式把7004添加进去,然后设置成从节点】

添加到集群
这里写图片描述

这里写图片描述
这是ID

这里写图片描述

这里写图片描述
【最后提示OK,就完成】

现在我们来测试删除从节点
这里写图片描述

删除主节点(删除7003(master)节点之前,我们需要先把其全部的数据(slot槽)移动到其他节点上去)
有多少槽就还原多少。如图
这里写图片描述

接下来
这里写图片描述

How many slots do you want to move (from 1 to 16384)? 398
(注释:这里不会是正好200个槽)
What is the receiving node ID? d889ce6ed7cbfe1fd7b2bafee53603440a0a6b95
(注释:这里是需要把数据移动到哪?7001的主节点id)
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:0eb82ce939034586f24ddcbd8e753a54a064e1a9
(注释:这里是需要数据源,也就是我们的7003节点id)
Source node #2:done
(注释:这里直接输入done 开始生成迁移计划)

最后我们直接使用del-node命令删除7003主节点即可(表示7003的节点id)。

这里写图片描述

中间可能要用到的代码片段
//删除节点ip:port id
./src/redis-trib.rb del-node 192.168.3.231:7003 382634a4025778c040b7213453fd42a709f79e28
//重新分槽
./redis-trib.rb reshard 192.168.3.231:7003


//集群模式打开客户端
./redis-cli -c -h 192.168.3.231 -p 7003
//主节点编程从节点
cluster replicate 382634a4025778c040b7213453fd42a709f79e28
//查看集群信息
cluster nodes


//添加节点到集群(192.168.3.231:7003需要添加的节点),(192.168.3.231:7001已有集群的节点)
./src/redis-trib.rb add-node 192.168.3.231:7003 192.168.3.231:7001

原创粉丝点击