1. 程式人生 > 其它 >8.Redis配置優化(引數講解)

8.Redis配置優化(引數講解)

(2)sentinel down-after-milliseconds

 格式:sentinel down-after-milliseconds <master-name> <times>

 每個sentinel節點都要通過定期傳送ping命令來判斷Redis資料節點和其餘sentinel節點是否可達,如果超過這個引數配置的時間其沒有有效的回覆,則判定節點不可達,<time>(單位為毫秒)就是超時時間。這個配置是對節點失敗判定的重要依據。

 優化說明:down-alter-milliseconds越大,代表sentinel節點對於節點不可達的條件越寬鬆,反之越嚴格,條件寬鬆有可能帶來的問題就是節點確實不可達了,那麼應用方需要等待的故障轉移的時間越長,也就意味著應用方故障時間可能越長。條件嚴格雖然可以及時發現故障完成故障轉移,但是也存在一定的誤判率

(3)sentinel parallel-syncs

 格式:sentinel parallel-syncs <master-name> <nums>

 當sentinel節點集合對主節點故障判定達成一致時,sentinel領導節點會做故障轉移操作,選出新的主節點,原來的從節點會向新的主節點發起復制操作,paralle-syncs就是用來限制在一次故障轉移之後,每次向新的主節點發起復制操作的從節點個數。如果這個引數配置的比較大,那麼多個從節點會向新的主節點同時發起複製操作,儘管複製操作通常不會阻塞主節點,但是同時向主節點發起復制,必然會對主節點所在的機器造成一定的網路和io開銷,

(4)sentile failover-timeout

  格式:sentinel failover-timeout <master-name> <times>

  failover-timeout通常被解釋成故障轉移超時時間,但實際上它的作用於故障的各個階段:

  a)選出合適從節點

  b)晉升選出的從節點為主節點

  c)命令其餘從節點複製新的主節點

  d)等待原主節點恢復後命令它去複製新的主節點

  1)如果redis sentinel對一個主節點故障轉移失敗,那麼下次再對該主節點做故障轉移的起始時間是failover-timeout的2倍

  2)  在b)階段時,如果sentinel節點向a)階段選出來的從節點執行slaveof no one一直失敗,當此過程超過failover-timeout時,則故障轉移失敗。

  3) 在b)階段如果執行成功,sentinel節點還會執行info 命令來確認a)階段選出來的節點確實晉升為主節點,如果此過程執行時間超過failover-timeout時,則故障轉移失敗。

  4)如果c)階段執行時間超過了failover-timeout(不包含複製時間),則故障轉移失敗,注意即使超過了這個時間,sentinel節點也會最終配置從節點去同步最新的主節點。

(5)sentinel auth-pass

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

  如果sentinel監控的主節點配置了密碼,sentinel auth-pass配置通過新增主節點的密碼,防止sentinel節點對主節點無法監控。

(6)sentinel notification-script

  sentinel notification-script <master-name> <script-path>

  sentinel notification-script的作用是在故障轉移期間,當一些警告級別的sentinel事件發生時(指重要事件,例如-sdown:客觀下線、-odwon:主觀下線)時,會觸發對應路徑的指令碼,並向指令碼傳送相應的事件引數。

(7)sentinel client-reconfig-script

  sentinel client-reconfig-script <master-name><script-path>

  sentinel client-reconfig-script的作用是在故障轉移結束後,會觸發對應路徑的指令碼,並向指令碼傳送故障轉移結果的相關引數。和notification-script類似