首先,搭建一主两从集群,那么我们就是一个master容器,两个slave容器
一、复制三份redis.conf核心配置文件并指定ip和端口(在文件末尾)
slave-announce-ip
slave-announce-port
二、启动三个容器
1.启动master
docker run --name myredis-1 \
-v /root/redis/redis1.conf:/etc/redis/redis.conf \
-v /root/redis/data/6381:/data \
-dp 6381:6379 \
redis:7.0 \
redis-server /etc/redis/redis.conf
2.启动两个slave
docker run --name myredis-2 \
-v /root/redis/redis2.conf:/etc/redis/redis.conf \
-v /root/redis/data/6382:/data \
-dp 6382:6379 \
redis:7.0 \
redis-server /etc/redis/redis.conf --slaveof 192.168.127.137 6381
docker run --name myredis-3 \
-v /root/redis/redis3.conf:/etc/redis/redis.conf \
-v /root/redis/data/6383:/data \
-dp 6383:6379 \
redis:7.0 \
redis-server /etc/redis/redis.conf --slaveof 192.168.127.137 6381
基本上没什么区别,但是要注意的是在命令的最后要指定主容器的ip和端口,让他们知道自己的主是哪个
三、查看容器关系
1.进入master(myredis-1)查看
输入以下命令进入myredis-1容器中
docker exec -it myredis-1 /bin/bash
redis-cli
再输入info replication查看信息
info replication
通过上图可以看到,当前容器是master,并且它有两个slave,以及显示出了两个slave的信息(ip、端口、状态等)
并且我们可以设置一个name字段以及指定值,比如我这设置的是name--hyc
2.进入redis2或者redis3(slave)容器
info replication:查看关系
我们以上图myredis-2为例,可以看到是可以获取到刚刚在myredis-1中设置的字段name的,并且值也没有问题。
同时info replication之后也可以看到当前role是slave,并且master_host以及master_port就是myredis-1容器
到这一步,简单的redis一主两从集群就搭建完成了