91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

Redis集群重新分片(新增/移除節點)【理論】

發布時間:2020-06-25 10:16:16 來源:網絡 閱讀:7389 作者:張德帥ya 欄目:數據庫

redis集群重新分片原理:增加或移除節點) ?

? ? ?

? ? 以增加節點為例:

? ? ? ? 我們只需要將已經分配給節點的哈希槽(hash slot),重新分配即可。

? ? ? ? 注:hash slot重新分配時,如果槽中存在key-value,那么key-value也將一起被分配出去。

? ? ? ??

? ? 例如:

? ? ? ? node1的哈希槽:0-5000

? ? ? ? node2的哈希槽:5001-10000

? ? ? ? node3的哈希槽:10001-16383

? ? 現在新增node4:

? ? 我們可以將node3的哈希槽調整為:10001-15000、node4的哈希槽:15001-16383

? ? 也可以在三個現有節點中,各自分出一部分哈希槽,給新的節點。


? ? redis集群的重新分片操作是由redis的集群管理軟件redis-trib負責執行的,

? ? 但它不支持自動分片,需要自己計算從哪些節點上分配slot。

?

?redis集群在重新分片時,客戶端獲取數據原理: ?


? ? 重新分片時,集群不需要下線,并且源節點和目標節點都可以繼續處理命令請求。

? ??

? ? 在hash slot遷移過程中(一部分key-value在node3中,另一部分key-value在node4中)

? ? 如果客戶端向node3發送一個與數據庫key有關的命令:

? ? ? ? 1)node3會先在自己的數據庫里面查找請求的key,

? ? ? ? ? ? 如果找到,直接執行客戶端發送的命令。

? ? ? ? 2)如果沒找到,node3給客戶端返回一個ASK錯誤,指引客戶端轉向node4,

? ? ? ? ? ? ?并且客戶端需要再次發送想要執行的key相關的命令。 ? ?

? ? ? ? 3)客戶端轉向node4,首先發送ASKING命令,然后再次發送想要執行的key相關的命令。

? ? ? ? ? ? ?如果直接發送想要執行的key相關的命令,node4此時并不處理,

? ? ? ? ? ? ?因為key所在的槽還未遷移完,槽還屬于node3,會返回錯誤給客戶端。

? ? ? ? ? ? ?但如果先發送ASKING命令,node4在執行key相關的命令時,

? ? ? ? ? ? ?不僅會檢查key所屬槽是否屬于自己,

? ? ? ? ? ? ?還會檢查migration_slots_to數組(正在遷往自己的槽)

? ? ? ? ? ? ?判斷key相關的槽是否正在遷往自己,如果是的話,則執行key相關的命令。


向AI問一下細節

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

AI

驻马店市| 汽车| 荆门市| 鹤峰县| 韩城市| 霍城县| 三亚市| 南丹县| 辽阳县| 若羌县| 金湖县| 景洪市| 唐海县| 武平县| 和平县| 安龙县| 铜川市| 井陉县| 乌拉特前旗| 光山县| 濉溪县| 翼城县| 广灵县| 枣强县| 闵行区| 汾阳市| 乌鲁木齐县| 阿勒泰市| 巴南区| 修水县| 依兰县| 桦川县| 永清县| 仲巴县| 南昌县| 延边| 齐河县| 固原市| 将乐县| 普格县| 新巴尔虎左旗|