Redis集群原理分析

2021-07-27 10:34:44 字數 581 閱讀 1801

redis集群的原理主要是圍繞著『槽』的概念展開的,先來理解集群中『槽』的概念。reids集群是通過將所有的key進行分割槽來實現的,redis集群最多有16384個分割槽(也可以稱作『槽』,英文:slot),然後在集群節點中指定分割槽範圍來實現。例如:集群中的節點a負責0 - 10000,節點b負責 10001-16384,每個節點負責的分割槽數可以自行設定。redis中的每乙個key都有唯一的分割槽號與其對應,可以通過如下命令查詢:

cluster keyslot "keyname" 

原始碼中計算分割槽號的方式很簡單,如下:

def slot_number(key):

return crc16(key) & 16383

當設定好redis集群中每個節點的分割槽範圍之後,整個集群才處於可使用狀態,並且集群的分割槽範圍配置資訊會在節點之間進行同步。當乙個set或者get命令來到集群中的任何乙個節點時,都會先計算key的分割槽號,如果不屬於當前節點的分割槽,則節點會傳送轉移命令給客戶端,讓客戶端去相應的節點請求資料,至此完成集群工作。

重新分片:可以讓集群動態的新增節點和移除節點,通過配置節點的分割槽範圍來實現『重新分割槽』。

Redis集群原理簡述

redis集群原理簡述 原理如圖 訪問資料 搭建好r edis cluster集群後.往redis中存入資料,資料會被隨機存入不同主機.如隨機存入100條資料,會隨機儲存,可能主機一20條,主機二50條,主機三30條等等,並且順序也隨機可能第一條存放在主機三,第二條存主機一等等.但存入後位置相對固定...

Redis集群分析(11)

1 redis的主從模式 在之前的文件中,我們介紹了redis的集群主要有兩種模式 哨兵模式和分片模式。而哨兵模式又是對主從模式的加強版,所以在分析哨兵模式前需要先分析主從模式。而主從模式最關鍵的地方在於將主伺服器的資料同步到從伺服器,保證集群內部資料的一致性。而資料同步又分為兩部分 伺服器中已經存...

Redis集群分析(36)

1 自動分割槽 在文件 23 到文件 35 中,我們分析了redis的哨兵模式,詳細介紹的該模式下的各個功能與原始碼。接下來我們繼續分析redis的自動分割槽,即cluster模式。cluster模式 如同之前文件所分析的那樣。哨兵模式主要是對主從模式的擴充套件,而主從模式主要解決的是單點壓力,單點...