一全蝶、驗證環(huán)境
1舟误、操作系統(tǒng):win10
2装黑、redis版本:redis-2.8.22
二扼褪、驗證步驟:
本次驗證方案為:采用一主(master)二從(slave)三(sentinel)的架構(gòu)模式
master ip:127.0.0.1 port:6379
slave0 ip:127.0.0.1 port:6380
slave1 ip:127.0.0.1 port:6381
sentinel-26379 ip:127.0.0.1 port:26379
sentinel-26380 ip:127.0.0.1 port:26380
sentinel-26381 ip:127.0.0.1 port:26381
1.下載Redis安裝包
解壓并且復(fù)制三份,名字分別為什往,Redis-x64-2.8.2-6379扳缕,Redis-x64-2.8.2-6380,Redis-x64-2.8.2-6381
2.修改配置文件(redis.windows.conf)
2.1.主配置文件修改內(nèi)容(6379)
#redis訪問端口號
port 6379
#綁定redis訪問地址
bind 127.0.0.1
2.2. 從配置文件修改內(nèi)容(6380)
#redis訪問端口號
port 6380
#綁定redis訪問地址
bind 127.0.0.1
#綁定master服務(wù)ip port
slaveof 127.0.0.1 6379
2.3. 從配置文件修改內(nèi)容(6381)
#redis訪問端口號
port 6381
#綁定redis訪問地址
bind 127.0.0.1
#綁定master服務(wù)ip port
slaveof 127.0.0.1 6379
3.啟動redis服務(wù)
分別切換到對應(yīng)目錄啟動master别威,slave0躯舔,slave1,執(zhí)行啟動命令:
redis-server.exe redis.windows.conf
啟動后頁面
驗證是否6379是master,6380和6381是slave
1.使用連接工具
連接redis分別執(zhí)行命令:
info replication
主服務(wù)
從服務(wù)80
從服務(wù)81
驗證主從綁定成功省古!
4.三哨兵搭建
4.1.在redis文件夾下建一個 sentinel-26379.conf粥庄,sentinel-26380.conf ,sentinel-26381.conf
4.2 哨兵配置文件內(nèi)容分別是:
主配置文件內(nèi)容(6379)
# 配置 sentinel 端口號
port 26379
# 以守護(hù)進(jìn)程啟動
daemonize yes
# 綁定只在本地使用
bind 127.0.0.1
# 日志文件名稱
logfile "sentinel_26379.log"
# 日志文件存放地址
dir "./"
# 監(jiān)控 master 名字叫做 mymaster豺妓,地址是 127.0.0.1 端口號是 6379惜互,1 表示有幾個 sentinel 認(rèn)為該 master 出現(xiàn)故障,觸發(fā)主備切換動作
sentinel monitor mymaster 127.0.0.1 6379 2
# 指定多少毫秒之后 主節(jié)點沒有應(yīng)答哨兵sentinel 此時 哨兵主觀上認(rèn)為主節(jié)點下線 默認(rèn)30秒
sentinel down-after-milliseconds mymaster 30000
# 主備切換時琳拭,多少個從服務(wù)器同步更新數(shù)據(jù)训堆,數(shù)值越小越好
sentinel parallel-syncs mymaster 1
# 故障轉(zhuǎn)移的超時時間 failover-timeout 可以用在以下這些方面:
#1. 同一個sentinel對同一個master兩次failover之間的間隔時間。
#2. 當(dāng)一個slave從一個錯誤的master那里同步數(shù)據(jù)開始計算時間白嘁。直到slave被糾正為向正確的master那里同步數(shù)據(jù)時坑鱼。
#3.當(dāng)想要取消一個正在進(jìn)行的failover所需要的時間。?
#4.當(dāng)進(jìn)行failover時絮缅,配置所有slaves指向新的master所需的最大時間鲁沥。不過呼股,即使過了這個超時,slaves依然會被正確配置為指向master画恰,但是就不按parallel-syncs所配置的規(guī)則來了
# 默認(rèn)三分鐘
sentinel failover-timeout mymaster 180000
從配置文件(6380)
# 配置 sentinel 端口號
port 26380
# 以守護(hù)進(jìn)程啟動
daemonize yes
# 綁定只在本地使用
bind 127.0.0.1
# 日志文件名稱
logfile "sentinel_26380.log"
# 日志文件存放地址
dir "./"
# 監(jiān)控 master 名字叫做 mymaster彭谁,地址是 127.0.0.1 端口號是 6379,1 表示有幾個 sentinel 認(rèn)為該 master 出現(xiàn)故障允扇,觸發(fā)主備切換動作
sentinel monitor mymaster 127.0.0.1 6379 2
# 指定多少毫秒之后 主節(jié)點沒有應(yīng)答哨兵sentinel 此時 哨兵主觀上認(rèn)為主節(jié)點下線 默認(rèn)30秒
sentinel down-after-milliseconds mymaster 30000
# 主備切換時缠局,多少個從服務(wù)器同步更新數(shù)據(jù),數(shù)值越小越好
sentinel parallel-syncs mymaster 1
# 故障轉(zhuǎn)移的超時時間 failover-timeout 可以用在以下這些方面:
#1. 同一個sentinel對同一個master兩次failover之間的間隔時間蔼两。
#2. 當(dāng)一個slave從一個錯誤的master那里同步數(shù)據(jù)開始計算時間甩鳄。直到slave被糾正為向正確的master那里同步數(shù)據(jù)時。
#3.當(dāng)想要取消一個正在進(jìn)行的failover所需要的時間额划。?
#4.當(dāng)進(jìn)行failover時妙啃,配置所有slaves指向新的master所需的最大時間。不過俊戳,即使過了這個超時揖赴,slaves依然會被正確配置為指向master,但是就不按parallel-syncs所配置的規(guī)則來了
# 默認(rèn)三分鐘
sentinel failover-timeout mymaster 180000
從配置文件(6381)
# 配置 sentinel 端口號
port 26381
# 以守護(hù)進(jìn)程啟動
daemonize yes
# 綁定只在本地使用
bind 127.0.0.1
# 日志文件名稱
logfile "sentinel_26381.log"
# 日志文件存放地址
dir "./"
# 監(jiān)控 master 名字叫做 mymaster抑胎,地址是 127.0.0.1 端口號是 6379燥滑,1 表示有幾個 sentinel 認(rèn)為該 master 出現(xiàn)故障,觸發(fā)主備切換動作
sentinel monitor mymaster 127.0.0.1 6379 2
# 指定多少毫秒之后 主節(jié)點沒有應(yīng)答哨兵sentinel 此時 哨兵主觀上認(rèn)為主節(jié)點下線 默認(rèn)30秒
sentinel down-after-milliseconds mymaster 30000
# 主備切換時阿逃,多少個從服務(wù)器同步更新數(shù)據(jù)铭拧,數(shù)值越小越好
sentinel parallel-syncs mymaster 1
# 故障轉(zhuǎn)移的超時時間 failover-timeout 可以用在以下這些方面:
#1. 同一個sentinel對同一個master兩次failover之間的間隔時間。
#2. 當(dāng)一個slave從一個錯誤的master那里同步數(shù)據(jù)開始計算時間恃锉。直到slave被糾正為向正確的master那里同步數(shù)據(jù)時搀菩。
#3.當(dāng)想要取消一個正在進(jìn)行的failover所需要的時間。?
#4.當(dāng)進(jìn)行failover時破托,配置所有slaves指向新的master所需的最大時間肪跋。不過,即使過了這個超時土砂,slaves依然會被正確配置為指向master州既,但是就不按parallel-syncs所配置的規(guī)則來了
# 默認(rèn)三分鐘
sentinel failover-timeout mymaster 180000
5. 啟動三哨兵
分別啟動sentinel-26379.conf,sentinel-26380.conf 萝映,sentinel-26381.conf
啟動命令分別如下:
redis-server.exe sentinel-26379.conf --sentinel
redis-server.exe sentinel-26380.conf --sentinel
redis-server.exe sentinel-26381.conf --sentinel
啟動后界面
6.驗證主從服務(wù)切換
場景:當(dāng)主服務(wù)master6379宕機(jī)吴叶,剩下兩個從服其中一個替換為新的master
主從切換驗證成功!
如果原來的Master6379又恢復(fù)了序臂,理論上他不能成為master,就變成slave蚌卤,驗證步驟
1,恢復(fù)6379服務(wù)
查看各個服務(wù)信息
79服務(wù)信息
80服務(wù)信息
81服務(wù)信息
驗證成功!
7.驗證主從服務(wù)數(shù)據(jù)同步
場景:在master80上添加數(shù)據(jù)造寝,如set name 'fans'
查看79和81從服能否查到name數(shù)據(jù)
驗證結(jié)果都可以查到,主從數(shù)據(jù)同步成功吭练!