首頁 >資料庫 >Redis >redis怎麼保證高可用

redis怎麼保證高可用

(*-*)浩
(*-*)浩原創
2019-11-20 14:49:503323瀏覽

redis怎麼保證高可用

redis高可用:如果你做主從架構部署,其實就是加上哨兵就可以了,就可以實現,任何一個實例宕機,自動會進行主備切換。

哨兵機制                          (建議之後學習:Redis影片教學)

#有了主從複製的實現後學習:
Redis影片教學

)


#有了主從複製的實現後學習:如果對主複製的實現後對主伺服器進行監控,那麼在redis2.6以後提供了一個"哨兵"的機制。顧名思義,哨兵的意思就是監控redis系統的運作狀態。可以啟動多個哨兵,去監控redis資料庫的運作狀態。其主要功能有兩點:


a、監控所有節點資料庫是否正常運作。


b、master資料庫發生故障時,可以自動通過投票機制,從slave節點選舉新的master,實現將從資料庫轉換為主資料庫的自動切換。

一個一主多從的Redis系統中,可以使用多個哨兵進行監控任務以確保系統足夠穩健。此時,不僅哨兵會同時監控主資料庫和從資料庫,哨兵之間也會互相監控。在這裡,建議大家哨兵至少部署3個,並且使用奇數個哨兵。

Redis的哨兵(sentinel) 系統用於管理多個Redis 伺服器,此系統執行以下三個任務:

監控(Monitoring): 哨兵(sentinel) 會不斷地檢查你的Master和Slave是否運作正常。

提醒(Notification):當被監控的某個 Redis出現問題時, 哨兵(sentinel) 可以透過 API 向管理員或其他應用程式發送通知。

自動故障遷移(Automatic failover):當一個Master不能正常工作時,哨兵(sentinel) 會開始一次自動故障遷移操作,它會將失效Master的其中一個Slave升級為新的Master, 並讓失效Master的其他Slave改為複製新的Master; 當客戶端試圖連接失效的Master時,集群也會向客戶端返回新Master的地址,使得集群可以使用Master代替失效Master。

哨兵(sentinel) 是一個分散式系統

,你可以在一個架構中運行多個哨兵(sentinel) 進程,這些進程使用流言協定(gossipprotocols)來接收關於Master是否下線的資訊,並使用投票協議(agreement protocols)來決定是否執行自動故障遷移,以及選擇哪個Slave作為新的Master.

每個哨兵(sentinel) 會向其它哨兵(sentinel)、 master、slave定時發送訊息,以確認對方是否」活」著,如果發現對方在指定時間(可配置)內未回應,則暫時認為對方已掛(所謂的」主觀認為宕機」 Subjective Down,簡稱sdown ).

###若「哨兵群」中的多數sentinel,都報告某一master沒響應,系統才認為該master"徹底死亡"(即:客觀上的真正down機,Objective Down,簡稱odown ),透過一定的vote演算法,從剩下的slave節點中,選一台提升為master,然後自動修改相關配置.######雖然哨兵(sentinel) 釋出為一個單獨的可執行檔redis -sentinel ,但實際上它只是一個運行在特殊模式下的Redis 伺服器,你可以在啟動一個普通Redis 伺服器時透過給定--sentinel 選項來啟動哨兵(sentinel)。 ###

以上是redis怎麼保證高可用的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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