Redis集群伸缩
Redis集群伸缩是在已经搭建完成的Redis集群中进行,对集群进行添加和删除实例。
Redis分片集群搭建:Docker下搭建Redis分片集群_呆萌很的博客-CSDN博客
创建新的redis实例
创建一个文件夹
mkdir 7004
启动redis实例
docker run -d --name redis-7004 --net host --privileged=true -v /tmp/7004:/data redis:latest --cluster-enabled yes --appendonly yes --port 7004
- docker run:创建并运行docker容器实例
- –name redis-7004:容器名字
- –net host:使用宿主机的IP和端口,默认
- –privileged=true:获取宿主机root用户权限
- -v /tmp/7004:/data:容器卷,宿主机地址:docker内部地址
- redis:latest:redis镜像和版本号
- –cluster-enabled yes:开启redis集群
- –appendonly yes:开启持久化
- –port 7004:redis端口号
添加新节点到redis
添加作为master节点
#add-node new_host:new_port existing_host:existing_port
redis-cli --cluster add-node 192.168.19.128:7004 192.168.19.128:7001
一个节点添加到集群里,第一个参数为新节点的ip:port,第二个参数为集群中任意一个已经存在的节点的ip:port
查询新增节点
redis-cli -p 7001 cluster nodes
新增节点成功,但是缺少插槽。
转移插槽
redis-cli --cluster reshard 192.168.19.128:7001
输入转移的插槽数量,如:3000
输入接收的ID,ID可以在上面查询节点中找到 如:10911498af7d9e6d5a0024b1b66e9e1b60e89a1e
输入插槽来源的节点,如:a4657cc0798026a3cf5009aa6035c0a0e8c8a661
最后输入done,确认开始转移。
查询分配后的插槽
删除节点
删除节点需要把该节点中的所有插槽转移到别的节点中,按照上面步骤操作。
查询想要删除节点的ID
redis-cli -p 7001 cluster nodes
# del-node host:port node_id
redis-cli --cluster del-node 192.168.19.128:7001 node_id
至此redis集群伸缩,添加和删除节点成功。