先部署三臺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