分片集群结构
同一台虚拟机中开启6个redis实例,模拟分片集群
IP | PORT | 角色 |
192.168.19.128 | 7001 | master |
192.168.19.128 | 7002 | master |
192.168.19.128 | 7003 | master |
192.168.19.128 | 8001 | slave |
192.168.19.128 | 8002 | slave |
192.168.19.128 | 8003 | slave |
搭建Redis分片集群
创建实例目录
# 进入/tmp目录
cd /tmp
# 创建目录
mkdir 7001 7002 7003 8001 8002 8003
启动docker
systemctl start docker
创建6个容器redis实例
docker run -d --name redis-7001 --net host --privileged=true -v /tmp/7001:/data redis:latest --cluster-enabled yes --appendonly yes --port 7001docker run -d --name redis-7002 --net host --privileged=true -v /tmp/7002:/data redis:latest --cluster-enabled yes --appendonly yes --port 7002docker run -d --name redis-7003 --net host --privileged=true -v /tmp/7003:/data redis:latest --cluster-enabled yes --appendonly yes --port 7003docker run -d --name redis-8001 --net host --privileged=true -v /tmp/8001:/data redis:latest --cluster-enabled yes --appendonly yes --port 8001docker run -d --name redis-8002 --net host --privileged=true -v /tmp/8002:/data redis:latest --cluster-enabled yes --appendonly yes --port 8002docker run -d --name redis-8003 --net host --privileged=true -v /tmp/8003:/data redis:latest --cluster-enabled yes --appendonly yes --port 8003
- docker run:创建并运行docker容器实例
- –name redis-7001:容器名字
- –net host:使用宿主机的IP和端口,默认
- –privileged=true:获取宿主机root用户权限
- -v /tmp/7001:/data:容器卷,宿主机地址:docker内部地址
- redis:latest:redis镜像和版本号
- –cluster-enabled yes:开启redis集群
- –appendonly yes:开启持久化
- –port 7001:redis端口号
进入容器,随便一个容器
docker exec -it redis-7001 bash
构建主从关系,执行一次
redis-cli --cluster create --cluster-replicas 1 192.168.19.128:7001 192.168.19.128:7002 192.168.19.128:7003 192.168.19.128:8001 192.168.19.128:8002 192.168.19.128:8003
- redis-cli --cluster:代表集群操作命令
- create:代表是创建集群
- replicas 1或者--cluster-replicas 1 :指定集群中每个master的副本个数为1,此时节点总数 ÷ (replicas + 1) 得到的就是master的数量。因此节点列表中的前n个就是master,其它节点都是slave节点,随机分配到不同master将这个文件拷贝到每个目录下
执行过程提示输入yes:Can I set the above configuration? (type 'yes' to accept): yes
通过命令可以查看集群状态
redis-cli -p 7001 cluster nodes
至此集群创建成功
Redis添加和删除节点:Docker下Redis集群伸缩_呆萌很的博客-CSDN博客