Redis集群搭建

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

整个过程就是 启动 redis服务 开启集群模式 让各个redis服务知道其他节点的存在 分配槽位 设置主从


一、Redis集群搭建

1、构建redis服务

以docker 构建为例

docker create --name redis-node1 --net host -v /data/redis/node1:/data redis:5.0.5 --cluster-enabled yes --cluster-config-file nodes-node1.conf --port 6379
docker create --name redis-node2 --net host -v /data/redis/node2:/data redis:5.0.5 --cluster-enabled yes --cluster-config-file nodes-node2.conf --port 6380
docker create --name redis-node3 --net host -v /data/redis/node3:/data redis:5.0.5 --cluster-enabled yes --cluster-config-file nodes-node3.conf --port 6381
docker create --name redis-node4 --net host -v /data/redis/node4:/data redis:5.0.5 --cluster-enabled yes --cluster-config-file nodes-node4.conf --port 6382
docker create --name redis-node5 --net host -v /data/redis/node5:/data redis:5.0.5 --cluster-enabled yes --cluster-config-file nodes-node5.conf --port 6383
docker create --name redis-node6 --net host -v /data/redis/node6:/data redis:5.0.5 --cluster-enabled yes --cluster-config-file nodes-node6.conf --port 6384

redis-cli --cluster help 查看集群操作相关指令 (进入redis服务使用)
redis-cli --cluster help

create    host1:port1 ... hostN:portN
          --cluster-replicas <arg>
## 创建集群指令  
## --cluster-replicas <arg>  主从比例  
## --cluster-replicas 1 一个主节点下1个从节点
redis-cli --cluster create 1.1.1.1:6379 1.1.1.1:6380 1.1.1.1:6381 1.1.1.1:6382 1.1.1.1:6383 1.1.1.1:6384 --cluster-replicas 1

查看创建好的集群

## 连接redis
redis-cli
## 查看集群信息
cluster nodes

cluster nodes

二、Redis集群扩容

主要分为两步 1:将需要扩容的redis添加到集群 ;2、处理数据和槽位问题

1、添加节点

add-node  new_host:new_port existing_host:existing_port
          --cluster-slave
          --cluster-master-id <arg>
## new_host:new_port 新的redis节点
## existing_host:existing_port 集群中已经存在的某个节点
## --cluster-slave 设置为从节点
## --cluster-master-id <arg> 设置为从节点后所挂的主节点
## 主节点 加入集群
redis-cli --cluster add-node 1.1.1.1:6385 1.1.1.1:6379

## 从节点 加入集群
redis-cli --cluster add-node 1.1.1.1:6386 1.1.1.1:6379 --cluster-slave --cluster-master-id [某个主节点id]

2、分配槽位

## 分配槽位到新主节点
reshard  host:port
         --cluster-from <arg>
         --cluster-to <arg>
         --cluster-slots <arg>
         --cluster-yes
         --cluster-timeout <arg>
         --cluster-pipeline <arg>
         --cluster-replace
redis-cli --cluster reshard 1.1.1.1:6385

在这里插入图片描述
在这里插入图片描述
分配槽位后 对应被迁移槽位数据也将迁移到新节点

三、Redis集群缩容

主要分为两步 1:处理数据和槽位问题 ;2、将需要缩容的redis从集群删除

1、处理数据和槽位问题

redis-cli --cluster reshard 1.1.1.1:6385 --cluster-from [要删除的节点id] --cluster-to [目标节点id] --cluster-slots [要删除节点的槽位数量] 

数据迁移后,从节点将转移到目标节点下面

2、将需要缩容的redis从集群删除

redis-cli --cluster del-node 1.1.1.1:6385 [要删除的节点的id]

总结

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值