1. 程式人生 > >redis sentinel部署(Windows下實現)

redis sentinel部署(Windows下實現)

一、準備條件

1、作業系統:win7 2、redis版本:redis-2.8.19 二、下載redis並解壓

1、下載

由於redis官方並不支援windows作業系統,所以官網上是下不到的,需要到gitlab上下載,下載地址如下:

https://github.com/MSOpenTech/redis/releases?after=win-2.8.2101 2、解壓

將下載後的zip檔案解壓到本地磁碟,注意解壓到的目錄不能有中文和特殊字元,否則會出現很多奇葩的問題。解壓後的目錄如下:

三、HA配置

我們採用一主(master)二從(slave)三sentinel的架構模式來做演示

master ip:127.0.0.1 port:6379 slave1 ip:127.0.0.1 port:6380 slave2 ip:127.0.0.1 port:6381 四、新建和修改配置檔案

1、修改redis.conf配置檔案

由於我們採用的是一主二從三sentinel的模式,所以我們需要6個配置檔案,拷貝2份redis.conf配置檔案,分別命名為redis6380.conf和redis6381.conf,其中修改redis.conf配置檔案的如下幾個引數:

port 6379 bind 127.0.0.1 修改redis6380.conf配置檔案的如下幾個引數:

port 6380 bind 127.0.0.1 slaveof 127.0.0.1 6379  // 設定master伺服器為6379 同理修改redis6381.conf配置檔案

2、建立並修改sentinel.conf

該模式使用了3sentinel,所以我們需要複製3份sentinel.conf配置檔案,並分別命名為sentinel26479.conf和sentinel26579.conf,其中修改sentinel.conf配置檔案中的如下幾個引數:

port 26379 // 當前Sentinel服務執行的埠 sentinel monitor mymaster 127.0.0.1 6379 2  sentinel down-after-milliseconds mymaster 5000 sentinel parallel-syncs mymaster 1 sentinel failover-timeout mymaster 15000 同理,修改另外的兩個配置檔案

配置檔案說明:

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失敗 五、啟動伺服器

1、分別啟動master,slave1,slave2

啟動命令分別如下:

redis-server.exe redis.conf redis-server.exe redis6380.conf redis-server.exe redis6381.conf 2、分別啟動sentinel1,sentinel2,sentinel3

啟動命令分別如下:

redis-server.exe sentinel.conf --sentinel redis-server.exe sentinel26479.conf --sentinel redis-server.exe sentinel26579.conf --sentinel 服務啟動成功後,介面顯示如下:

3、檢視redis伺服器狀態

4、檢視sentinel的狀態

六、測試伺服器

這裡只做簡單的測試

七、redis主從自動failover測試

1、停止master伺服器

2、檢視剩餘伺服器的狀態

從上圖中可以看出來,master的伺服器埠從6379變成了6380,也就是說redis自動的實現了主從切換,我們可以在檢視下sentinel的狀態,如下:

我們發現sentinel監控到127.0.0.1:6379已經無法ping通了,切換master伺服器為127.0.0.1:6380 ---------------------  作者:牛奮lch  來源:CSDN  原文:https://blog.csdn.net/liuchuanhong1/article/details/53206028?utm_source=copy  版權宣告:本文為博主原創文章,轉載請附上博文連結!