redis sentinel配置啟動

oliver-l發表於2020-11-13

redis sentinel的相關資訊可檢視
Redis哨兵模式(sentinel)學習總結及部署記錄(主從複製、讀寫分離、主從切換)
Redis哨兵(Sentinel)模式

這裡負責實踐配置啟動redis sentinel

配置redis主從複製

首先開啟redis sentinel的前提是已開啟redis主從複製,詳細開啟可檢視redis持久化和主從複製,我這篇部落格有相關操作

由於是測試配置,所有配置資訊都在一臺伺服器上進行,其中,我配置了三個redis程式,對應的ip分別為6379,6380,6381。其中6379為master,6380,6381為slave。檢視info replication資訊如下

6379埠資訊如下,存在兩個salve
redis sentinel配置啟動

6380埠資訊如下:
redis sentinel配置啟動

6381埠資訊如下:

redis sentinel配置啟動

配置sentinel

配置資訊如下所示

//執行埠
port 26379
//是否開啟後臺執行
daemonize yes
//pid執行檔案
pidfile /var/run/redis-sentinel-26379.pid
//sentinel日誌檔案
logfile "/usr/local/redis/var/redis-sentinel-26379.log"
//資料夾目錄
dir "./"
//告訴sentinel去監聽地址為ip:port的一個master,這裡的mymater可自定義,注意的是master-ip 要寫真實的ip地址而不要用迴環地址(127.0.0.1),和埠號6379,2為指明當有多少個sentinel認為一個master失效時
sentinel monitor mymaster 47.102.216.107 6379 2
//這個配置項指定了需要多少失效時間,一個master才會被這個sentinel主觀地認為是不可用的。 單位是毫秒,預設為30秒
sentinel down-after-milliseconds mymaster 30000
//這個配置項指定了在發生failover主備切換時最多可以有多少個slave同時對新的master進行同步,這個數字越小,完成failover所需的時間就越長,但是如果這個數字越大,就意味著越多的slave因為replication而不可用。可以通過將這個值設為1來保證每次只有一個slave處於不能處理命令請求的狀態。
sentinel parallel-syncs mymaster 1
//failover-timeout 可以用在以下這些方面: 
//1. 同一個sentinel對同一個master兩次failover之間的間隔時間。
//2. 當一個slave從一個錯誤的master那裡同步資料開始計算時間。直到slave被糾正為向正確的master那裡同步資料時。
//3.當想要取消一個正在進行的failover所需要的時間。  
//4.當進行failover時,配置所有slaves指向新的master所需的最大時間。不過,即使過了這個超時,slaves依然會被正確配置為指向master,但是就不按parallel-syncs所配置的規則來了。
sentinel failover-timeout mymaster 180000
//設定連線master和slave時的密碼,注意的是sentinel不能分別為master和slave設定不同的密碼,因此master和slave的密碼應該設定相同。
sentinel auth-pass mymaster 1505203

由於在同一臺伺服器配置,這裡新增三個配置檔案,對應埠26379,26380,26381

執行sentinel

在redis安裝的bin目錄執行以下命令
./redis-server sentinel-26379.conf --sentinel
./redis-server sentinel-26380.conf --sentinel
./redis-server sentinel-26381.conf --sentinel

檢視redis程式ps -ef | grep redis

redis sentinel配置啟動

可以檢視到redis程式已執行

測試sentinel

我們首先shutdown master的redis程式

再檢視其他兩個埠的redis程式info

6380已變為master
redis sentinel配置啟動

6381顯示master_link_status已經down了
redis sentinel配置啟動

測試一下可以正常執行主從複製

redis sentinel配置啟動

可以檢視到,主從複製是可以正常執行的

現在我們再將6379埠的redis啟動

執行命令./redis-server redis-6379.conf

檢視一下6379的info資訊,可檢視到6379已變成slave

redis sentinel配置啟動

但是並沒有執行主從複製
redis sentinel配置啟動

這時需要修改6379的配置檔案,將slaveof配置和masterauth配置填寫為6380埠的相關資訊,並關閉bgsave相關配置

可以檢視到6379可成功進行主從複製

redis sentinel配置啟動

本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章