上面一節我們講了redis通過repliceof 組成的主從模式,主庫負責執行讀寫操作,從庫負責執行讀操作。寫的操作通過長鏈結同步給從庫。這個地方有個很大的風險,主庫宕機了怎麼辦,主庫宕機之後,客戶端的寫操作就沒有伺服器可以執行了
為了解決這個隱患,redis推出了哨兵機制。哨兵是乙個特殊的redis執行緒,通過定時ping主庫和從庫的ip-port來檢測redis服務的狀態。哨兵負責的三個主要工作:
判斷主庫是否下線
選出新的主庫,切換主庫
把新的主庫通知給其他從庫和客戶端
主觀下線,a哨兵主動ping 主庫的ip_port,如果持續ping不同的時候,a哨兵標記主庫為主觀下線
客觀下線,多個哨兵a/b/c/d,如果超過半數的哨兵都標記主庫為下線,那麼主庫就被標記為客觀下線,防止單獨的哨兵因為自己的網路環境不穩定,或者主庫的服務壓力過大,反應延遲導致錯誤下線。因為客觀下線之後會選出新的主庫,並且通知從庫和客戶端,會有較大的消耗。所以最少要三個哨兵組成哨兵集群
評選出最優的從庫,需要給合格的從庫打分:
上面的過程抽象來說比較簡單,但是實施的過程還是有一定的難度,上面的內容是蔣德鈞老師的課程總結。
蘋果Macbook經常宕機怎麼辦?
蘋果mac用久了之後,難免會出現宕機的現象,如果反覆 頻繁的宕機,那就是你的電腦出現了問題。那麼macbook pro air 蘋果膝上型電腦經常宕機怎麼辦呢?下面就來給大家介紹,mac出現頻繁宕機的原因及解決方法。macbook 蘋果膝上型電腦經常宕機的原因 1.系統出現問題。2.主機板有問題,主...
Redis 記憶體滿了怎麼辦?
我們知道redis是基於記憶體的key value資料庫,因為系統的記憶體大小有限,所以我們在使用redis的時候可以配置redis能使用的最大的記憶體大小。通過在redis安裝目錄下面的redis.conf配置檔案中新增以下配置設定記憶體大小 設定redis最大占用記憶體大小為100m maxme...
MySQL 8 忘記密碼怎麼辦
mysql5.7.6版本後,廢棄user表中password 方法,所以舊方法重置密碼對mysql8.0版本是行不通的!mysql8可以採用此方法修改root密碼 skip grant tables模式啟動 skip grant tables表示,在啟動mysql時不啟動授權表功能,可以直接免密碼登...