首页 > 技术文章 > docker 配置redis主从复制

mengY 2020-03-22 12:58 原文

一、安装Redis

1.拉取官方镜像

[root@localhost /]# docker pull  redis:5.0.7

2.下载完成后,我们就可以在本地镜像列表里查到REPOSITORY为redis,标签为5.0.7的镜像。

[root@localhost ~]# docker images
REPOSITORY            TAG                 IMAGE ID            CREATED             SIZE
docker.io/redis       5.0.7               dcf9ec9265e0        3 months ago        98.2 MB

3.运行容器

[root@localhost ~]# docker run --name redis-6379 -p 6379:6379 -d redis:5.0.7 redis-server

  

二、主从复制

1.运行redis镜像

首先使用docker启动3个redis容器服务,分别使用到6379、6380、6381端口

docker run --name redis-6379 -p 6379:6379 -d redis:3.2 redis-server
docker run --name redis-6380 -p 6380:6379 -d redis:3.2 redis-server
docker run --name redis-6381 -p 6381:6379 -d redis:3.2 redis-server

2.配置redis集群

使用如下命令查看容器内网的ip地址等信息

docker inspect containerid(容器ID)

 

 

 3个redis的内网ip地址为:

redis-6379:172.17.0.3:6379
redis-6380:172.17.0.4:6379
redis-6381:172.17.0.5:6379

进入docker容器内部,查看当前redis角色(主master还是从slave)(命令:info replication)

127.0.0.1:6379> info replication
# Replication
role:master
connected_slaves:0
master_replid:a44f60e68f4d128750c2d09a00c9d4a1b6b643d1
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:0
second_repl_offset:-1
repl_backlog_active:0
repl_backlog_size:1048576
repl_backlog_first_byte_offset:0
repl_backlog_histlen:0

可以看到当前3台redis都是master角色,使用redis-cli命令修改redis-6380、redis-6381的主机为172.17.0.3:6379

[root@localhost ~]# docker exec -it redis-6381 redis-cli
127.0.0.1:6379> slaveof 172.17.0.3 6379
OK

再次查看主机info,已经有两个从机了(.4 和 .5)

127.0.0.1:6379> info replication
# Replication
role:master
connected_slaves:2
slave0:ip=172.17.0.5,port=6379,state=online,offset=308,lag=1
slave1:ip=172.17.0.6,port=6379,state=online,offset=308,lag=1
master_replid:2392e41f862b441aed8e66c6fe9483e772c671b6
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:308
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:308

至此,redis下的主从配置就ok了。

 

 

 

参考:https://blog.csdn.net/yhk724555508/article/details/85338706?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task

 

推荐阅读