redis集羣數據存儲原理:
在redis cluster中,如果想要存入一個key-value,
這個key首先會通過CRC16算法取餘(和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相關的命令。