突然看到一篇關于Redis的理解,發現漸漸的隨著作業開始成了一個copy作業者,每次發現錯誤或者需要用的東西就會跑來查詢,查詢以后就去測驗然后應用,慢慢的在不知道的情況中忘記了當時學習的快樂,
此篇只是博主個人思維導圖,各位朋友看完勿噴,有錯誤希望在評論區寫下來,萬分感謝
Redis思維導圖(RDB模式轉換AOF模式)
1. 缺點:每次加入新的資料,主節點都會把全部資料再次發送給從節點,這是要損害消耗的,

2. 解決問題一:增加快取區和偏移量 方便在某個從節點掛掉以后 上線同步資料 有一個問題就是如果新進從節點該怎么辦
缺點:如果有新加入的從節點,那么主節點如何判斷是否需要同步全部資料
為了更容易看清楚,下面分為多張圖片
2.1. 沒有有掉線情況

2.2. 存在掉線情況
圖一

圖二

圖三

3. 解決問題二:增加主節點的唯一的隨機運行ID,來保證主節點明確知道誰是自己的下級 問題來了 如果主節點掛掉怎么辦

4. 解決問題三:哨兵模式 sentinel
問題三:當主節點掛掉以后,如何選擇某一個從節點做為主節點,又如何選擇某一個這個節點如何修復
哨兵模式:獨立的行程運行,比如說 城池防守,所有士兵都站在城墻上被攻城人沖擊,哨兵模式則是監軍,來回巡邏,如果士兵被流矢擊中倒地,監軍就會過去拍拍士兵掛沒掛,如掛了,那么監軍就會把掛掉士兵拖下去,讓另一個士兵頂上,也就是說一個監軍可以監多個士兵
哨兵:
1. 通過發送命令,讓Redis服務器回傳監控的狀態,包括master和slave
2. 當哨兵檢測到master掛掉,會自動將slave轉換成master,并且會告知所有的 slave 你們的master換了,以后去新的master同步資料,然后所有的slave收到訊息以后,修改自己的組態檔,以后就去新master拿資料
4.1. 單哨兵 問題又來了 萬一單哨兵,哨兵掛掉怎么辦
4.2 多哨兵模式 解決單哨兵模式掛掉怎么辦
多哨兵模式:sentinel不但需要監聽master和slave還需要監聽除自己以外的別的sentinel,已防止某個sentinel掛掉,
如master掛掉以后,由于不是一個單哨兵模式了,所以發現的哨兵會自己做一個記錄,一定數量的sentinel知道掛掉以后,就會去討論哪一個slave來頂替master的位置,來進行投票表決,
最后結果投票之后,由發起人sentinel來進行failover操作,也就是故障切換,切換以后告訴所有哨兵,讓哨兵告訴監控下的所有slave更改配置

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/229664.html
標籤:Java
上一篇:MyBatis學習06
