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