redis向集群添加节点
总阅读次
文章目录
Redis集群操作
在前一文中,我们已经创建好了redis集群,并启动和验证通过。下面我们将这个集群进行水平扩展,为集群添加节点。
启动集群
|
|
查看是否全部启动成功
|
|
查看集群状态
新建集群操作
我们新建两个服务器,还是按照之前新建的方式,通过伪分布式来创建,使用文件夹代表节点。两个服务器一主一从。Master端口7007,Slave端口:7008
创建目录并修改配置文件
- 创建7007和7008两个目录,并将redis.conf文件拷贝到刚创建的7007和7008目录。
- 修改7007和7008目录下的配置文件,修改
port 7007
dir dir /home/hadoop/apps/redis-cluster/7007/
cluster-config-file nodes-7007.conf
这三处,7008目录下的也是同理。
启动7007和7008这两台服务器
- 正常启动7007和7008节点,并验证是否启动成功。
- 虽然启动成功,但是7007和7008节点并没有加入到集群中。
通过redis-trib添加节点
进入/home/hadoop/apps/redis-3.0.0/src
目录执行 ./redis-trib.rb
脚本
- create,创建一个集群host1:port1…hostN:portN (集群中的主从节点比例)
- call,可以执行redis命令
- add-node,将一个节点添加到集群里,第一个参数为新节点的ip:port,第二个参数为集群中任意一个已存节点的ip:port
- del-node,移除一个节点
- reshard,重新分片
- check,检查集群状态
- 新增一个主节点7007(master)
- 这个是连接到集群,查看集群节点信息
通过集群节点信息查看,新增的7007节点没有槽,下面为7007节点添加槽
为7007节点分别slot槽
使用redis-trib
命令,找到集群中的任意一个主节点,对其进行重新分片工作。
- 执行
./redis-trib.rb reshard 192.168.137.5:7001
命令进行重新分片,下面图片显示为节点分配多少个槽,这里分配的是1000 - 输入分配槽后,再次需要确认为那个节点分配槽,这是是7007节点
- 输入7007节点id后,还需选择上面提供的1000个槽,怎么分配过去。
Type all
表示除了新增节点外,其他平均分配这1000个节点,也就是7001、7002、7003这三个节点分别提供333个节点。如果是Type done
表示指定某个节点id,全部从这个节点获取1000个节点;这里选择all
- 然后还需要你确认执行计划,输入
yes
即可 - 验证7007节点是否有槽,连接集群任意节点,输入
cluster nodes
命令查看
添加从节点7008到集群中
- 使用
./redis-trib.rb
脚本的的add-node
命令,将7008添加到集群中;./redis-trib.rb add-node 192.168.137.5:7008 192.168.137.5:7002
- 然后使用
replicate
命令指定当前节点(从节点)的主节点id是那个,首先要登录7008节点的客户端,然后使用集群命令操作,把当前的7008节点指定到主节点7007下。
总结
至此redis水平扩展的步骤执行完毕,在进行水平扩展时对redis的其他服务器没有任何影响