Redis哨兵模式下,java客戶端連接的是哨兵還是Redis的實例?Redis實例Master掛了怎么辦?哨兵實例掛了怎么辦?


Redis哨兵模式下,java客戶端連接的是哨兵還是Redis的實例?Redis實例Master掛了怎么辦?哨兵實例掛了怎么辦?Redis客戶端每次都從哨兵拿master的信息嗎?

 

問題,一個一個解決。

java客戶端連接的是哨兵還是Redis的實例?

連接的是哨兵

 

Redis實例Master掛了怎么辦?

Master掛了,sentinel會進行提議,選舉出一個sentinel,讓選舉出來的sentinel去選舉新的master。

選舉sentinel代表是根據誰先提議,得票數的規則選舉。

選舉master是根據在線的、響應快的、偏移量大的,runId來決定。

 

 

哨兵實例掛了怎么辦?

 此刻選舉不出來master,但是redis客戶端有緩存,還可以繼續用緩存中的master。

 

Redis客戶端每次都從哨兵拿master的信息嗎?

sentinel哨兵是特殊的redis服務,不提供讀寫服務,主要用來監控redis實例節點。

哨兵架構下client端第一次從哨兵找出redis的主節點,后續就直接訪問redis的主節點,不會每次都通過 sentinel代理訪問redis的主節點,當redis的主節點發生變化,哨兵會第一時間感知到,並且將新的redis 主節點通知給client端(這里面redis的client端一般都實現了訂閱功能,訂閱sentinel發布的節點變動消息)

 


免責聲明!

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



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