相关链接
作者搭建记录: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