Docker下redis的主从配置
先部署三台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