中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

redis集群原理的示例分析

發布時間:2022-03-24 14:15:41 來源:億速云 閱讀:99 作者:小新 欄目:web開發

這篇文章主要介紹redis集群原理的示例分析,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

redis集群的原理

如果說依靠哨兵可以實現redis的高可用,如果還想在支持高并發同時容納海量的數據,那就需要redis集群。redis集群是redis提供的分布式數據存儲方案,集群通過數據分片sharding來進行數據的共享,同時提供復制和故障轉移的功能。

節點

一個redis集群由多個節點node組成,而多個node之間通過cluster meet命令來進行連接,節點的握手過程:

  1. 節點A收到客戶端的cluster meet命令

  2. A根據收到的IP地址和端口號,向B發送一條meet消息

  3. 節點B收到meet消息返回pong

  4. A知道B收到了meet消息,返回一條ping消息,握手成功

  5. 最后,節點A將會通過gossip協議把節點B的信息傳播給集群中的其他節點,其他節點也將和B進行握手

槽slot

redis通過集群分片的形式來保存數據,整個集群數據庫被分為16384個slot,集群中的每個節點可以處理0-16384個slot,當數據庫16384個slot都有節點在處理時,集群處于上線狀態,反之只要有一個slot沒有得到處理都會處理下線狀態。通過cluster addslots命令可以將slot指派給對應節點處理。

slot是一個位數組,數組的長度是16384/8=2048,而數組的每一位用1表示被節點處理,0表示不處理,如圖所示的話表示A節點處理0-7的slot。

當客戶端向節點發送命令,如果剛好找到slot屬于當前節點,那么節點就執行命令,反之,則會返回一個MOVED命令到客戶端指引客戶端轉向正確的節點。(MOVED過程是自動的)

如果增加或者移出節點,對于slot的重新分配也是非常方便的,redis提供了工具幫助實現slot的遷移,整個過程是完全在線的,不需要停止服務。

故障轉移

如果節點A向節點B發送ping消息,節點B沒有在規定的時間內響應pong,那么節點A會標記節點B為pfail疑似下線狀態,同時把B的狀態通過消息的形式發送給其他節點,如果超過半數以上的節點都標記B為pfail狀態,B就會被標記為fail下線狀態,此時將會發生故障轉移,優先從復制數據較多的從節點選擇一個成為主節點,并且接管下線節點的slot,整個過程和哨兵非常類似,都是基于Raft協議做選舉。

以上是“redis集群原理的示例分析”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

巴塘县| 瑞丽市| 米脂县| 阳谷县| 奉节县| 边坝县| 福泉市| 田东县| 明溪县| 抚顺县| 清苑县| 普定县| 朔州市| 岚皋县| 东山县| 遵义市| 凌云县| 涪陵区| 洛隆县| 普安县| 克什克腾旗| 民县| 潜江市| 洛川县| 连江县| 泗洪县| 新泰市| 临湘市| 宜黄县| 开原市| 秦皇岛市| 怀仁县| 柯坪县| 两当县| 三穗县| 开封市| 南木林县| 临邑县| 顺义区| 琼海市| 新绛县|