成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Redis集群模式在擴容情況下,如何處理客戶端的讀寫請求

數據庫 Redis
如果計算出來的槽位還在原先的節點上,那么源節點會直接返回數據給客戶端;如果源節點上的槽位已經被遷移到新節點上,那么源節點會告訴客戶端去新節點上查詢數據。

Redis的高可用方案主要有三種模式,分別主從復制模式、哨兵模式和集群模式。那么在Redis集群模式下,集群在擴容的時候如何處理客戶端的讀寫請求呢?如下所示的Redis的集群:

圖片圖片

    假設現在將集群中3個節點擴充為4個節點,那么新加入1個節點后,節點的槽分布情況如下圖所示:

圖片圖片

1、集群擴容的過程

    使用Redis的命令在Redis集群添加1個新的節點(假設為Node_3節點),如下圖所示:

圖片圖片

    新加入的Node_3節點由于還沒有分配槽位,所以Node_3節點不會處理任何請求,整個Redis集群的讀寫操作還是按照原先邏輯執行,不會受到新加入節點的影響。那么新加入的節點分配槽位的過程如下所示:

    首先要從Node_2節點上遷移槽位到Node_3節點上,此時客戶端會發起migrating指令到Node_2節點上,如下如所示:

圖片圖片

    此時的Node_2節點就會處于遷出狀態(代表有槽位需要從這個節點上遷移出去),Node_3節點需要接收遷出的槽位,客戶端會發送importing命令到Node_3節點上,如下圖所示:

圖片圖片

    然后Node_2節點就可以將槽位12288遷移到Node_3節點上,通過這樣的步驟依次實現集群中所有的槽位遷移工作,最后的遷移結果如下圖所示:

圖片圖片

2、遷移過程中數據的查詢

(1)槽位還在原先的節點上

    當客戶端發送請求(get longxia),假設通過CRC16計算出來其槽位是12288,那么就是去Node_2節點上查詢數據,此時由于Node_2上的槽位還沒有被遷移出去,那么Node_2會返回對應的數據給客戶端,如下如所示:

圖片圖片

(2)槽位遷移到新節點上

    當客戶端發送請求(get longxia),假如其槽位是12288并且Node_2節點已經將槽位12288遷移到了Node_3節點上了,如下圖所示:

圖片

    當客戶端發起查詢請求的時候,Node_2節點由于將槽位12288遷移到新節點Node_3上了,所以Node_2會給客戶端返回臨時的ASK重定向響應(也就是告訴客戶端去Node_3節點上查詢數據),客戶端接收到了臨時的ASK后就會發送請求去目標節點上(Node_3節點)上查詢。

    客戶端會發起asking命令到Node_3節點上(asking命令是告訴Node_3節點接下來的命令是Node_2節點轉發的請求,必須要進行處理,即使可能槽位暫時不屬于Node_3節點管理),當Node_3節點收到asking命令之后,會響應ok給客戶端。

    最后,客戶端會發起查詢的請求(get longxia)到Node_3節點上,Node_3節點處理請求并返回數據給客戶端。

    其實,當槽位成功的遷移的新的節點上后,就會向集群中所有的節點發送一個遷移槽位數據成功的通知,目的就是后面要查詢(如槽位12288)槽位的數據就要去具體的節點上查詢(如Node_3節點),而不需要經過原來的節點進行重定向了。

    因此,即使在集群槽位遷移的過程中,Redis集群還是可以正常的提供服務。

總結:

(1)Redis集群遷移中會將源節點置為遷移狀態,然后將目標節點置為遷移中狀態,最后將槽位數據執行遷移動作。

(2)遷移過程中,Redis的集群還是可以正常地提供服務。如果計算出來的槽位還在原先的節點上,那么源節點會直接返回數據給客戶端;如果源節點上的槽位已經被遷移到新節點上,那么源節點會告訴客戶端去新節點上查詢數據。

責任編輯:武曉燕 來源: 龍蝦編程
相關推薦

2013-03-20 11:01:37

Redis客戶端連接

2025-01-09 10:20:53

2019-02-27 12:00:09

開源Org模式Emacs

2012-10-11 17:02:02

IBMdw

2020-06-12 10:03:01

線程安全多線程

2023-11-23 23:52:06

options請求瀏覽器

2025-02-21 15:43:29

slotredis集群

2011-08-17 16:50:54

2021-06-22 15:06:13

Redis客戶端 Redis-clie

2009-03-04 10:27:50

客戶端組件桌面虛擬化Xendesktop

2023-03-27 13:00:13

Javascript前端

2010-09-29 15:05:44

DHCP客戶端故障

2018-01-15 13:43:47

LinuxVmware硬盤

2021-09-22 15:46:29

虛擬桌面瘦客戶端胖客戶端

2009-12-22 10:29:59

WCF客戶端處理

2021-08-18 08:20:14

SQL除數統計

2023-10-26 08:33:16

Redis管道技術

2020-12-24 17:10:54

DockerLinux微信

2010-05-28 09:31:10

修改SVN密碼

2010-05-31 15:55:42

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美区日韩区 | 99久久精品国产一区二区三区 | 日韩av免费在线观看 | 成人免费激情视频 | 久久一 | 一区二区三区av | 做a的各种视频 | 亚洲欧美一区二区三区在线 | 国产精品色 | 天天操天天玩 | 日本亚洲一区二区 | 国产在线网址 | 超碰在线人 | 男女羞羞免费网站 | 国产精品视频在线播放 | 欧美性一区二区三区 | 欧美高清视频在线观看 | 久久久久久91 | 精品1区2区 | 国产羞羞视频在线观看 | 亚洲天堂网站 | 成人精品久久日伦片大全免费 | 羞羞视频免费观 | 国产在线精品一区二区三区 | 国产精品99久久久久久久久久久久 | 成人在线视频网站 | 亚洲视频在线一区 | 99精品久久久国产一区二区三 | 高清久久久 | 桃色五月| 成人一区二区三区在线观看 | 国产免费一区二区 | 国产精品成人一区二区 | 91麻豆产精品久久久久久夏晴子 | 国产成人久久av免费高清密臂 | 国产美女在线观看 | 一区视频在线播放 | 国产精品一区二区三区在线 | 亚洲天堂一区二区 | 亚洲五码在线 | 精品欧美一区二区三区久久久 |