Redis學習筆記--Redis配置文件Sentinel.conf參數配置詳解


redis-sentinel.conf配置項說明如下:

 

1.port 26379

sentinel監聽端口,默認是26379,可以修改。

 

2.sentinel monitor <master-name> <ip> <redis-port> <quorum>

告訴sentinel去監聽地址為ip:port的一個master,這里的master-name可以自定義,quorum是一個數字,指明當有多少個sentinel認為一個master失效時,master才算真正失效。master-name只能包含英文字母,數字,和“.-_”這三個字符需要注意的是master-ip 要寫真實的ip地址而不要用回環地址(127.0.0.1)。

配置示例:

sentinel monitor mymaster 192.168.0.5 6379 2

 

3.sentinel auth-pass <master-name> <password>

設置連接master和slave時的密碼,注意的是sentinel不能分別為master和slave設置不同的密碼,因此master和slave的密碼應該設置相同。

配置示例:

sentinel auth-pass mymaster 0123passw0rd

 

4.sentinel down-after-milliseconds <master-name> <milliseconds> 

這個配置項指定了需要多少失效時間,一個master才會被這個sentinel主觀地認為是不可用的。 單位是毫秒,默認為30秒

配置示例:

sentinel down-after-milliseconds mymaster 30000

 

5.sentinel parallel-syncs <master-name> <numslaves> 

這個配置項指定了在發生failover主備切換時最多可以有多少個slave同時對新的master進行 同步,這個數字越小,完成failover所需的時間就越長,但是如果這個數字越大,就意味着越 多的slave因為replication而不可用。可以通過將這個值設為 1 來保證每次只有一個slave 處於不能處理命令請求的狀態。

配置示例:

sentinel parallel-syncs mymaster 1

 

6. sentinel failover-timeout <master-name> <milliseconds>

failover-timeout 可以用在以下這些方面: 

      1. 同一個sentinel對同一個master兩次failover之間的間隔時間。

      2. 當一個slave從一個錯誤的master那里同步數據開始計算時間。直到slave被糾正為向正確的master那里同步數據時。

      3.當想要取消一個正在進行的failover所需要的時間。  

      4.當進行failover時,配置所有slaves指向新的master所需的最大時間。不過,即使過了這個超時,slaves依然會被正確配置為指向master,但是就不按parallel-syncs所配置的規則來了。

配置示例:

sentinel failover-timeout mymaster1 20000

 

7.sentinel的notification-script和reconfig-script是用來配置當某一事件發生時所需要執行的腳本,可以通過腳本來通知管理員,例如當系統運行不正常時發郵件通知相關人員。對於腳本的運行結果有以下規則:

        若腳本執行后返回1,那么該腳本稍后將會被再次執行,重復次數目前默認為10

        若腳本執行后返回2,或者比2更高的一個返回值,腳本將不會重復執行。

        如果腳本在執行過程中由於收到系統中斷信號被終止了,則同返回值為1時的行為相同。

        一個腳本的最大執行時間為60s,如果超過這個時間,腳本將會被一個SIGKILL信號終止,之后重新執行。

1).sentinel notification-script <master-name> <script-path> 

通知型腳本:當sentinel有任何警告級別的事件發生時(比如說redis實例的主觀失效和客觀失效等等),將會去調用這個腳本,這時這個腳本應該通過郵件,SMS等方式去通知系統管理員關於系統不正常運行的信息。調用該腳本時,將傳給腳本兩個參數,一個是事件的類型,一個是事件的描述。如果sentinel.conf配置文件中配置了這個腳本路徑,那么必須保證這個腳本存在於這個路徑,並且是可執行的,否則sentinel無法正常啟動成功。

  配置示例:

 sentinel notification-script mymaster /var/redis/notify.sh

 

2).sentinel client-reconfig-script <master-name> <script-path>

 當一個master由於failover而發生改變時,這個腳本將會被調用,通知相關的客戶端關於master地址已經發生改變的信息。以下參數將會在調用腳本時傳給腳本:

       <master-name> <role> <state> <from-ip> <from-port> <to-ip> <to-port>

目前<state>總是“failover”, <role>是“leader”或者“observer”中的一個。 參數 from-ip, from-port, to-ip, to-port是用來和舊的master和新的master(即舊的slave)通信的。這個腳本應該是通用的,能被多次調用,不是針對性的。

   配置示例:

   sentinel client-reconfig-script mymaster /var/redis/reconfig.sh


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM