Docker下Redis集群伸缩

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集群伸缩,添加和删除节点成功。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是使用Docker部署Redis集群的步骤: 1.拉取Redis官方镜像: ```shell docker pull redis ``` 2.创建一个自定义的网络: ```shell docker network create redis-net ``` 3.创建6个Redis容器,3个作为主节点,3个作为从节点: ```shell docker run -d --name redis-1 --net redis-net redis redis-server --appendonly yes docker run -d --name redis-2 --net redis-net redis redis-server --appendonly yes docker run -d --name redis-3 --net redis-net redis redis-server --appendonly yes docker run -d --name redis-4 --net redis-net redis redis-server --appendonly yes docker run -d --name redis-5 --net redis-net redis redis-server --appendonly yes docker run -d --name redis-6 --net redis-net redis redis-server --appendonly yes ``` 4.将容器分配到不同的主节点和从节点: ```shell docker exec -it redis-1 redis-cli cluster meet <ip-address-of-redis-2> 6379 docker exec -it redis-1 redis-cli cluster meet <ip-address-of-redis-3> 6379 docker exec -it redis-4 redis-cli cluster meet <ip-address-of-redis-5> 6379 docker exec -it redis-4 redis-cli cluster meet <ip-address-of-redis-6> 6379 docker exec -it redis-1 redis-cli cluster replicate <node-id-of-redis-2> docker exec -it redis-1 redis-cli cluster replicate <node-id-of-redis-3> docker exec -it redis-4 redis-cli cluster replicate <node-id-of-redis-5> docker exec -it redis-4 redis-cli cluster replicate <node-id-of-redis-6> ``` 5.检查集群状态: ```shell docker exec -it redis-1 redis-cli cluster info ``` 6.在集群中添加键值对: ```shell docker exec -it redis-1 redis-cli set mykey "Hello World" docker exec -it redis-4 redis-cli get mykey ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值