用Docker搭建Redis主从复制的集群

同样再到redis-slave1容器的命令窗口里,通过docker exec -it redis-slave1 /bin/bash命令进入容器的命令行窗口,也通过redis-cli命令进入客户端命令行,也再通过info replication命令查看该Redis服务器的主从模式的状态,部分结果如下所示。

1 c:\work>docker exec -it redis-slave1 /bin/bash

2 root@2e3237c60211:/data# redis-cli

3 127.0.0.1:6379> info replication

4 # Replication

5 role:master

6 connected_slaves:0

由于此时还没有通过命令行设置主从模式,所以从第5行和第6行的输出结果里,依然看到当前服务器是“主服务器”,同时没有携带从服务器。

第五步,在redis-slave1容器的命令窗口里,运行如下的slaveof命令,指定当前Redis服务器为从服务器。该命令的格式是slaveof IP地址 端口号,这里是指向172.17.0.2:6379所在的主服务器。

slaveof 172.17.0.2 6379

运行完该命令后,还是在redis-slave1客户端里,再次运行info replication,会看到如下所示的部分结果。从第3行的结果里能看到,该redis-slave1服务器已经成为从服务器,并能从第4行和第5行的输出里能确认,该从服务器是从属于172.17.0.2:6379所在的Redis主服务器。

1 127.0.0.1:6379> info replication

2 # Replication

3 role:slave

4 master_host:172.17.0.2

5 master_port:6379

此时再回到redis-master容器的命令窗口里,在Redis客户端里再次运行info replication命令查看主从状态,能看到如下所示的部分结果。从第4行的输出里能看到,该Redis主服务器已经携带了一个从服务器。

1 127.0.0.1:6379> info replication

2 # Replication

3 role:master

4 connected_slaves:1

第六步,再打开一个新的命令窗口,在其中运行如下命令,开启一个新的名为redis-slave2的Redis容器,请注意它的端口是6381。

docker run -itd --name redis-slave2 -p 6381:6381 redis:latest

随后再运行docker exec -it redis-slave2 /bin/bash命令进入该容器的命令行窗口,再通过redis-cli命令进入客户端,运行slaveof 172.17.0.2 6379命令,把这个Redis服务器也设为从服务器,并连到redis-master这个容器所在的主Redis服务器上。

连接完成后,再回到redis-master容器所在的命令行窗口,再运行info replication命令,此时能看到如下的部分输出,从第4行的输出里能看到,当前该主服务器连接着两台从服务器。

1 127.0.0.1:6379> info replication

2 # Replication

3 role:master

4 connected_slaves:2

至此配置完成一主两

你可能感兴趣的:(程序员,docker,redis,eureka)