相关链接

作者搭建记录:https://github.com/mailjobblog/dev_redis/tree/master/master_slave

redis中国区文档:http://redis.cn/topics/replication.html

redis主从复制原理:https://blog.mailjob.net/posts/707463622.html

redis-GitHub(可下载redis.conf和sentinel.conf):https://github.com/redis/redis

# 创建一个网络
docker network create  --subnet=172.30.0.0/16  netredis

# 查看该网络的信息
docker network inspect netredis
--------------------------------
"Subnet": "172.30.0.0/16"
--------------------------------

# 查看之前pull的redis镜像
docker images
--------------------------------
REPOSITORY   TAG       IMAGE ID       CREATED       SIZE
redis        latest    621ceef7494a   3 weeks ago   104MB
--------------------------------

# redis.conf 和 sentinel.conf 下载
下载地址:https://github.com/redis/redis

# 在 /data/redis_group/masterslave 目录复制了3分redis.conf
--------------------------------
[root@VM-0-15-centos masterslave]# pwd
/data/redis_group/masterslave
[root@VM-0-15-centos masterslave]# ls
redis1.conf  redis2.conf  redis3.conf
[root@VM-0-15-centos masterslave]# 
--------------------------------

# 在 /data/redis_group/ 目录,创建 data1~data3 三个文件夹做数据卷

# 创建redis主从复制节点
docker run -itd -p 6000:6379 --network netredis --ip 172.30.0.10 -v /data/redis_group/data1:/data -v /data/redis_group/masterslave/redis1.conf:/etc/redis.conf --name redis1 [container id]
docker run -itd -p 6001:6379 --network netredis --ip 172.30.0.11 -v /data/redis_group/data2:/data -v /data/redis_group/masterslave/redis2.conf:/etc/redis.conf --name redis2 [container id]
docker run -itd -p 6002:6379 --network netredis --ip 172.30.0.12 -v /data/redis_group/data3:/data -v /data/redis_group/masterslave/redis3.conf:/etc/redis.conf --name redis3 [container id]

# 如果要开启数据持久化,加上这个。当然你也可以后面再改配置文件
--appendonly yes

# 配置主从

1、分别进入两个从节点的容器 redis2、redis3

2、docker exec -it  xxx /bash/bin  # 分别进入两个从容器

3、运行 redis-cli 命令,开始在redis命令窗口配置

4 进行配置
# 配置主节点
127.0.0.1:6379> slaveof 172.30.0.10 6379
# 命令窗,查看节点配置信息
127.0.0.1:6379> info replication

# redis主从节点如下
------------------------------------------------
名字--------IP--------------端口映射-------角色
redis1------172.30.0.10-----6000->6379-----mater
redis2------172.30.0.11-----6001->6379-----slave
redis3------172.30.0.12-----6002->6379-----slave
------------------------------------------------
redis 主节点查看配置信息
  • 可以看到两个从节点

  • 可以看到当前机器的角色是 master

redis 从节点查看配置信息