1.安裝docker
Docker安裝(CentOS)+簡單使用-CSDN博客
2.redis主從復制
redis主從復制(在虛擬機centos的docker下)-CSDN博客
3.編輯3個redis配置
cd /etc
mkdir redis-sentinel
cd redis-sentinel/
wget http://download.redis.io/redis-stable/sentinel.confcp sentinel.conf sentinel1.conf
# 修改哨兵的監聽端口
port 26379# 讓sentinel服務后臺運行(docker的話需要設置為no,非docker運行設置為yes, 因為docker有個-d屬性就是讓在后臺運行的)
daemonize no # 當Redis哨兵以守護進程的方式運行的時候,默認會把pid文件放在/var/tmp/sentinel1.log,也可以配置到其他地址,多個哨兵需要重命名文件。
pidfile /var/run/redis-sentinel2.pid# 修改日志文件的路徑
logfile "/var/tmp/sentinel.log"# 哨兵sentinel監控的redis主節點的
## ip:主機ip地址
## port:哨兵端口號
## master-name:可以自己命名的主節點名字(只能由字母A-z、數字0-9 、這三個字符".-_"組成。)
## quorum:當這些quorum個數sentinel哨兵認為master主節點失聯,那么這時客觀上認為主節點失聯了,就進行failover(故障轉移)
# sentinel monitor <master-name> <ip> <redis-port> <quorum>
sentinel monitor mymaster 192.168.2.77 6379 2# 當在Redis實例中開啟了requirepass <foobared>,所有連接Redis實例的客戶端都要提供密碼。
sentinel auth-pass mymaster 123456#超過5秒master還沒有連接上,則認為master已經停止
sentinel down-after-milliseconds mymaster 5000# 注釋掉以下參數,當前redis版本6.2.1,開啟參數啟動哨兵啟報錯
# >>> 'SENTINEL master-reboot-down-after-period mymaster 0'
# Unrecognized sentinel configuration statement
# SENTINEL master-reboot-down-after-period mymaster 0
注:sentinel2.conf?sentinel3.conf 與?sentinel1.conf 類似
4.啟動sentinel?
docker run -p 26379:26379 --name sentinel1 -v /etc/redis-sentinel:/usr/local/etc/redis -v /var/tmp/sentinel1.log:/var/tmp/sentinel.log -d redis redis-sentinel /usr/local/etc/redis/sentinel1.conf
docker run -p 26380:26380 --name sentinel2 -v /etc/redis-sentinel:/usr/local/etc/redis -v /var/tmp/sentinel2.log:/var/tmp/sentinel.log -d redis redis-sentinel /usr/local/etc/redis/sentinel2.conf
docker run -p 26381:26381 --name sentinel3 -v /etc/redis-sentinel:/usr/local/etc/redis -v /var/tmp/sentinel3.log:/var/tmp/sentinel.log -d redis redis-sentinel /usr/local/etc/redis/sentinel3.conf
5.查看3個哨兵的狀態
docker ps
6.進入某個sentinel 查看
docker exec -it sentinel3 /bin/bash
redis-cli -p 26381
info sentinel
7.大功告成 開始驗證
關閉:docker stop redis-6379
需要過會 再次查看 發現地址變了:
#超過5秒master還沒有連接上,則認為master已經停止
sentinel down-after-milliseconds mymaster 5000
查看:info sentinel?