1. 程式人生 > >Redis集群存/取數據原理(理論)

Redis集群存/取數據原理(理論)

redis集群存放數據原理 redis集群查看數據原理 redis集群寫入數據過程 redis集群查詢數據過程

redis集群數據存儲原理:

在redis cluster中,如果想要存入一個key-value,

首先會通過CRC16(hash算法)將key計算出一個值,

然後用計算出的值和16384取余,余數會對應上0-16383之間的哈希槽(hash slot)

最後,redis cluster會將key-value放置在對應的哈希槽中。

redis集群數據獲取原理:

當client向redis cluster中的任意一個節點發送與數據庫key有關的命令時,

接收命令的節點會計算出要處理的key屬於哪個哈希槽(hash slot),

並且先檢查這個hash slot是否屬於自己(管轄):

如果key所在的槽正好屬於自己(管轄),節點會直接執行這個key相關命令。

如果key所在的槽不屬於自己(管轄),那麽節點會給client返回一個MOVED錯誤,

指引client轉向負責對應槽的節點,並客戶端需要再次發送想要執行的和key相關的命令。


Redis集群存/取數據原理(理論)