Docker下搭建Redis分片集群

分片集群结构

Docker下搭建Redis分片集群_第1张图片

同一台虚拟机中开启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 7001

docker run -d --name redis-7002 --net host --privileged=true -v /tmp/7002:/data redis:latest --cluster-enabled yes --appendonly yes --port 7002

docker run -d --name redis-7003 --net host --privileged=true -v /tmp/7003:/data redis:latest --cluster-enabled yes --appendonly yes --port 7003

docker run -d --name redis-8001 --net host --privileged=true -v /tmp/8001:/data redis:latest --cluster-enabled yes --appendonly yes --port 8001

docker run -d --name redis-8002 --net host --privileged=true -v /tmp/8002:/data redis:latest --cluster-enabled yes --appendonly yes --port 8002

docker 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博客

你可能感兴趣的:(redis,redis,docker,java)