基于docker实现Redis哨兵模式

基于docker实现Redis哨兵模式

下载docker Redis镜像

docker pull redis

运行容器

sudo docker run -d --name redis-0 -p 6380:6379 redis redis-server  # 作为主机
sudo docker run -d --name redis-1 -p 6381:6379 redis redis-server  # 作为从机
sudo docker run -d --name redis-2 -p 6382:6379 redis redis-server  # 作为从机

docker 容器之间的网络互连默认使用的bridge模式,简单理解为 各个容器之间处在一个局域网内,与外界隔离。外界想要访问可以通过宿主机端口映射的方式。

查看容器信息

docker inspect redis-1

基于docker实现Redis哨兵模式_第1张图片

设置主机与从机

,Redis的主从配置十分简单,主机不用做任何配置,而从机也只需要一条命令就好。
使用redis-cli 工具连接运行在docker 容器里面的redis server。此时用的是主机映射过去的端口号,所以是 6381因为docker会将对于宿主机6381端口的请求转发到这个容器的6379端口。如果使用容器的IP地址连接 则应该为 ./redis-cli -h 172.17.0.3 -p 6379
在这里插入图片描述

验证

给主机设置数据
基于docker实现Redis哨兵模式_第2张图片
在从机上取数据

在这里插入图片描述
在这里插入图片描述

新建sentinel.conf文件

在文件中只需简单配置一句话,完整的配置文件可以参考redis安装目录下的sentinel.conf文件。

sentinel monitor host6380 172.17.0.2 6379 1

sentinel monitor
: 给主机起个名字
: 主机的IP地址与端口号
: 当主机挂了以后,从机要获取多少票才能成为主机。

开启哨兵监控

./redis-sentinel /home/crxk/Documents/redis/sentinel.conf

基于docker实现Redis哨兵模式_第3张图片
查看主机信息
基于docker实现Redis哨兵模式_第4张图片
查看从机信息
基于docker实现Redis哨兵模式_第5张图片
把主机直接关闭,此时查看运行哨兵程序的那个命令框,稍等一会发现系统自动进行选举,然后确定新的主机
基于docker实现Redis哨兵模式_第6张图片
基于docker实现Redis哨兵模式_第7张图片
此时过程中应该注意,对于容器之间的互连,以及宿主机与容器之间的互连,要多通过容器的局域网IP地址来进行访问。

你可能感兴趣的:(数据库)