java redis 主从 哨兵_Redis主从复制与哨兵机制
Redis主從復制
1、redis的復制功能是支持多個數據庫之間的數據同步。一類是主數據庫(master)一類是從數據庫(slave),主數據庫可以進行讀寫操作,當發生寫操作的時候自動將數據同步到從數據庫,而從數據庫一般是只讀的,并接收主數據庫同步過來的數據,一個主數據庫可以有多個從數據庫,而一個從數據庫只能有一個主數據庫。
2、通過redis的復制功能可以很好的實現數據庫的讀寫分離,提高服務器的負載能力。主數據庫主要進行寫操作,而從數據庫負責讀操作。
過程
1:當一個從數據庫啟動時,會向主數據庫發送sync命令,
2:主數據庫接收到sync命令后會開始在后臺保存快照(執行rdb操作),并將保存期間接收到的命令緩存起來
3:當快照完成后,redis會將快照文件和所有緩存的命令發送給從數據庫。
4:從數據庫收到后,會載入快照文件并執行收到的緩存的命令。
圖解如下:
什么是哨兵機制
Redis的哨兵(sentinel)?系統用于管理多個?Redis?服務器,該系統執行以下三個任務:
監控(Monitoring):?哨兵(sentinel)?會不斷地檢查你的Master和Slave是否運作正常。
提醒(Notification):當被監控的某個?Redis出現問題時,?哨兵(sentinel)?可以通過?API?向管理員或者其他應用程序發送通知。
自動故障遷移(Automaticfailover):當一個Master不能正常工作時,哨兵(sentinel)?會開始一次自動故障遷移操作,它會將失效Master的其中一個Slave升級為新的Master(通過選舉投票機制),?并讓失效Master的其他Slave改為復制新的Master;?當客戶端試圖連接失效的Master時,集群也會向客戶端返回新Master的地址,使得集群可以使用Master代替失效Master。
單個哨兵:
Master為Redis主服務器,slave為從服務器(redis只有一臺主服務器,多臺從服務器)。
思考:若redis服務器一個個都掛了?怎么處理?
答:重啟(×)
redis服務器都宕機了,哨兵模式選舉不了了,
應該是使用keepalived(重啟腳本)監聽,自動重啟,若服務器宕機了自動重啟,
若重啟失敗,則是郵件方式通知運維人員。
Redis高可用機制
keepalived+哨兵機制才是完善的Redis高可用機制。
注意:keepalived是重啟腳本,不僅僅重啟redis,包括其他軟件應用
具體實現后續再整理一下
總結
以上是生活随笔為你收集整理的java redis 主从 哨兵_Redis主从复制与哨兵机制的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java case or_java –
- 下一篇: java 并发统计_java并发编程|C