先部署三台redis服务器,6379,6380,6381
docker run --name elvis.redis6381 -d \ -p 6381:6379 \ -v `pwd`/data:/data \ daocloud.io/library/redis

测试容器:

看容器内网的ip地址:



3个redis的内网ip地址为:
redis-6379:172.17.0.5:6379 redis-6380:172.17.0.4:6379 redis-6381:172.17.0.3:6379
进入docker容器内部,查看当前redis角色(主还是从):

目前三个都是master状态
使用redis-cli命令修改redis-6380、redis-6381的主机为172.17.0.1:6379:

查看redis-6379是否已经拥有2个从机,connected_slaves:2

配置Sentinel哨兵:
进入3台redis容器内部进行配置,在容器根目录里面创建sentinel.conf文件
文件内容为:sentinel monitor mymaster 172.17.0.1 6379 1

启动哨兵配置:

测试:
关闭master

其他哨兵展示

查看172.17.0.3:

哨兵配置完成!!!
代码中应用:
工程中application.yml的修改为
# name of Redis server 哨兵监听的Redis server的名称 spring.redis.sentinel.master=mymaster # comma-separated list of host:port pairs 哨兵的配置列表 spring.redis.sentinel.nodes=192.168.155.56:26379,192.168.155.55:26379,192.168.155.45:26379

本文详细介绍如何在Docker环境下部署三台Redis服务器,并通过Sentinel实现故障转移。包括配置Master-Slave复制,设置Sentinel监控,以及在代码中应用Sentinel配置的方法。
3471

被折叠的 条评论
为什么被折叠?



