window下配置redis哨兵模式

1.首先把你下載的redis復制兩份出來,我的分別如下命名

在D盤下建立一個文件夾,我起名為redis

  • Redis-master
  • Redis-slave1
  • Redis-slave2

2.修改配置文件

  • 2.1修改redis-master的配置文件redis.windows.conf

  • port 6379

  • bind 127.0.0.1

2.2修改redis-slave1 和redis-slave2的配置文件

  • #redis-slave1的配置文件
port?6380 bind?127.0.0.1 slaveof?127.0.0.1?6379
#redis-slave2的配置文件 port?6381 bind?127.0.0.1 slaveof?127.0.0.1?6379

3.新建哨兵配置文件,分別命名為

sentinel.conf? sentinel26479.conf sentinel26579.conf

哨兵配置文件內容
sentinel.conf

port?26379 #master sentinel?monitor?master?127.0.0.1?6380?1 sentinel?down-after-milliseconds?master?5000 sentinel?config-epoch?master?1 sentinel?leader-epoch?master?1

sentinel26479.conf

port?26479 #slave1 sentinel?monitor?master?127.0.0.1?6380?1 sentinel?down-after-milliseconds?master?5000 sentinel?config-epoch?master?1 sentinel?leader-epoch?master?1

sentinel26579.conf

port?26579 #slave1 sentinel?monitor?master?127.0.0.1?6380?1 sentinel?down-after-milliseconds?master?5000 sentinel?config-epoch?master?1 sentinel?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?6379 redis-cli.exe?-h?127.0.0.1?-p?6380 redis-cli.exe?-h?127.0.0.1?-p?6381

測試數據是否同步,在master客戶端輸入
我在master 設置了一個key為li,值為kaixuan

可以看到兩臺從機都同步了數據,當我試圖在從機寫入數據時,是不允許的,告訴我么只讀,所以數據只能從主機寫入,這樣做到讀寫分離
window下配置redis哨兵模式
5.我們啟動3個哨兵

命令分別如下

redis-server.exe?sentinel.conf?--sentinel redis-server.exe?sentinel26479.conf?--sentinel redis-server.exe?sentinel26579.conf?--sentinel

下面測試主從切換

但我主機掛了后,從機是否能成功上位變為主機

先看下當前的redis狀態

分別在客戶端輸入

info?replication

window下配置redis哨兵模式
現在down掉主機
window下配置redis哨兵模式
我們發現現在其中端口為6380的從機現在變為了主機,說明我們的哨兵起作用了,OK!

相關教程:redis視頻教程

? 版權聲明
THE END
喜歡就支持一下吧
點贊12 分享