首頁  >  文章  >  資料庫  >  Redis集群故障轉移如何實現

Redis集群故障轉移如何實現

coldplay.xixi
coldplay.xixi原創
2020-06-30 13:09:462045瀏覽

Redis叢集故障轉移的方法:1、從所有的從節點裡面選出一個新的主;2、選出的新主會執行slaveof no one把自己的狀態從slave變成master; 3.撤銷已下線的主節點的槽指派,並把這些槽位重新指派給自己。

Redis集群故障轉移如何實現

Redis叢集故障轉移的方法:

一、故障偵測
# - 1.叢集中所有節點都會向其它節點發送PING訊息,當在規定的時間內,沒有收到對應的PONG訊息,就把此節點標記為疑似下線;

- 2.在發送的PING訊息裡面,會帶著當前集群和節點的信息;通過這種方式,即可檢測節點的存活,又能維護集群信息的統一性,不過有一定

的時延;

- 3.疑似下線不是真的下線,只有滿足以下條件才是真的下線;

- 主節點並且是被分配了slot槽位的主節點中有超過一半的節點都認為此節點疑似下線,才能真的下線;

- 4.當某個節點透過訊息得知有一個節點的疑似下線投票已經超過集群一半的時候,會發送一個標識此節點下線的廣播訊息;

- 5.其它節點收到某節點已經下線的廣播後,把自己內部的集群維護訊息也修改為節點已下線狀態。

二、故障轉移
- 1.從所有的從節點裡面選出一個新的主;

- 2.選出的新主會執行slaveof no one把自己的狀態從slave變成master;

- 3.撤銷已下線的主節點的槽指派,並把這些槽位重新指派給自己;

- 4.新的主節點向集群廣播一條PONG訊息,透過這個訊息告訴所有集群節點:自己已經變成了主節點,接管了原來的主節點;

- 5.新的主節點開始接收和處理與自己插槽相關的命令請求。

相關學習推薦:redis影片教學

以上是Redis集群故障轉移如何實現的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn