1.首先把你下載的redis復(fù)制兩份出來,我的分別如下命名
在D盤下建立一個文件夾,我起名為redis
2.修改配置文件
2.1修改redis-master的配置文件redis.windows.conf
port 6379
bind 127.0.0.1
2.2修改redis-slave1 和redis-slave2的配置文件
port 6380bind 127.0.0.1slaveof 127.0.0.1 6379
#redis-slave2的配置文件port 6381bind 127.0.0.1slaveof 127.0.0.1 6379
3.新建哨兵配置文件,分別命名為
sentinel.conf sentinel26479.confsentinel26579.conf
哨兵配置文件內(nèi)容
sentinel.conf
port 26379#mastersentinel monitor master 127.0.0.1 6380 1sentinel down-after-milliseconds master 5000sentinel config-epoch master 1sentinel leader-epoch master 1
sentinel26479.conf
port 26479#slave1sentinel monitor master 127.0.0.1 6380 1sentinel down-after-milliseconds master 5000sentinel config-epoch master 1sentinel leader-epoch master 1
sentinel26579.conf
port 26579#slave1sentinel monitor master 127.0.0.1 6380 1sentinel down-after-milliseconds master 5000sentinel config-epoch master 1sentinel leader-epoch master 1
哨兵配置文件說明
1. port :當前Sentinel服務(wù)運行的端口 2.sentinel monitor mymaster 127.0.0.1 6379 2:Sentinel去監(jiān)視一個名為mymaster的主redis實例,這個主實例的IP地址為本機地址127.0.0.1,端口號為6379,而將這個主實例判斷為失效至少需要2個 Sentinel進程的同意,只要同意Sentinel的數(shù)量不達標,自動failover就不會執(zhí)行 3.sentinel down-after-milliseconds mymaster 5000:指定了Sentinel認為Redis實例已經(jīng)失效所需的毫秒數(shù)。當 實例超過該時間沒有返回PING,或者直接返回錯誤,那么Sentinel將這個實例標記為主觀下線。只有一個 Sentinel進程將實例標記為主觀下線并不一定會引起實例的自動故障遷移:只有在足夠數(shù)量的Sentinel都將一個實例標記為主觀下線之后,實例才會被標記為客觀下線,這時自動故障遷移才會執(zhí)行 4.sentinel parallel-syncs mymaster 1:指定了在執(zhí)行故障轉(zhuǎn)移時,最多可以有多少個從Redis實例在同步新的主實例,在從Redis實例較多的情況下這個數(shù)字越小,同步的時間越長,完成故障轉(zhuǎn)移所需的時間就越長 5.sentinel failover-timeout mymaster 15000:如果在該時間(ms)內(nèi)未能完成failover操作,則認為該failover失敗
4.配置文件就這些了,下面進行測試看看是否成功
4.1分別啟動每個redis服務(wù)redis-server.exe redis.windows.conf
4.2然后分別啟動每個redis下的客戶端服務(wù),分別對應(yīng)如下命令
redis-cli.exe -h 127.0.0.1 -p 6379redis-cli.exe -h 127.0.0.1 -p 6380redis-cli.exe -h 127.0.0.1 -p 6381
測試數(shù)據(jù)是否同步,在master客戶端輸入
我在master 設(shè)置了一個key為li,值為kaixuan
可以看到兩臺從機都同步了數(shù)據(jù),當我試圖在從機寫入數(shù)據(jù)時,是不允許的,告訴我么只讀,所以數(shù)據(jù)只能從主機寫入,這樣做到讀寫分離
5.我們啟動3個哨兵
命令分別如下
redis-server.exe sentinel.conf --sentinelredis-server.exe sentinel26479.conf --sentinelredis-server.exe sentinel26579.conf --sentinel
下面測試主從切換
但我主機掛了后,從機是否能成功上位變?yōu)橹鳈C
先看下當前的redis狀態(tài)
分別在客戶端輸入
info replication
現(xiàn)在down掉主機
我們發(fā)現(xiàn)現(xiàn)在其中端口為6380的從機現(xiàn)在變?yōu)榱酥鳈C,說明我們的哨兵起作用了,OK!
相關(guān)教程:redis視頻教程
以上就是window下配置redis哨兵模式的詳細內(nèi)容,更多請關(guān)注 其它相關(guān)文章!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。
新聞熱點
疑難解答
圖片精選