亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

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

乌拉特前旗| 新余市| 延吉市| 西吉县| 从化市| 恩施市| 平湖市| 淮北市| 晋江市| 灵寿县| 三台县| 宁都县| 涿鹿县| 合作市| 万载县| 治多县| 靖江市| 壶关县| 峡江县| 镇远县| 温泉县| 南通市| 宁陵县| 施甸县| 班玛县| 淳安县| 吕梁市| 都昌县| 武夷山市| 宁津县| 楚雄市| 石景山区| 霸州市| 阿鲁科尔沁旗| 开江县| 天水市| 金坛市| 丰镇市| 阳曲县| 甘洛县| 厦门市|