Redis(9):Redis cluster簡介

一.redis replication的容量瓶頸問題

? ? ????我們知道redis replication+sentiel是單master節點多slave節點的這樣一個架構,這樣的話就會存在一個容量瓶頸問題。就是說,如果你的master節點的內存容量為16G,那么就算你把所有的內存都給redis使用的話,最大的緩存容量也就是16G,而每個slave節點的數據是跟slave節點是保持一致的,也就是說整個redis replication 集群的緩存容量為16G。當你的數據接近16G的時候,redis就會執行數據過期或淘汰算法,比如LRU。那么客戶端再請求那些被清除過的數據的時候,因為redis已經將他清除,這時候就是直接去數據庫查詢數據,這樣就會變相的降低系統的吞吐量,使系統能夠承受的并發量變低。

二.使用redis cluster集群架構解決單master的容量瓶頸問題

? ? ? ? 我們再使用redis replication的時候,為了提升集群能夠承受的QPS我們會水平擴容slave節點,這樣就能比較輕松的增加redis replication集群的QPS。對于單master節點的容量瓶頸問題,我們也可以采取這個策略,如果redis集群中的master節點也可以水平擴容的話,是不是就可以增加集群所能緩存的數據容量了。我們使用redis cluster便能夠實現這個目標。

三.redis cluster簡介?

1.redis cluster它可以支持多個master節點,每個master可以掛載多個slave。

2.它也支持讀寫分離的架構,對于每個master節點來說,寫在master節點,讀都會去這個master節點對應的slave節點。

3.redis cluster也能保證高可用性,每個master節點有多個slave節點,那么如果master掛掉,redis cluster會自動切換一個slave為master。

4.在redis cluster架構下,每個redis要放開兩個端口號,比如一個是6379,另外一個就是加10000的端口號,比如16379

16379端口號是用來進行節點間通信的,也就是cluster bus集群總線。cluster bus進行通信,用來進行故障檢測,配置更新,故障轉移授權。

5.cluster bus用了另外一種二進制的協議,主要用于節點間進行高效的數據交換,占用更少的網絡帶寬和處理時間。

四.redis cluster和redis replication如何選擇

? ? ? ? 如果你的數據量不大,一般只有幾個G,主要是應對高并發的場景,那么你使用redis replication便足夠了。但是如果你的數據量很大,那么你就可以選擇redis cluster,它不僅可以支撐高并發,高可用,還可以支持海量數據的場景。

五.數據分布算法:hash算法,一致性hash算法+虛擬節點,redis cluster的hash slot算法簡介

1.hash算法

? ? ? ? hash算法是比較老的一種數據分布算法,當客戶端要讀取一個key的時候,先計算這個key的hash值,然后使用這個值對當前master節點的數量進行取模,然后根據結果選擇對應的master節點。

hash算法建議圖解

hash算法的弊端(大量緩存重建):在運行的時候如果一臺master宕機了,那么會造成這臺機器上的所有緩存丟失,如果是三臺的話,立馬就會丟失三分之一的數據。但是這個算法還有一個弊端,如果其中一臺master宕機的話,那么當前取模的數量就會減一,這要就會造成結果錯位,這是什么意思呢?就是說本來有三臺master節點,其中一臺宕機了,那么現在就以2取模,宕機發生的時候三分之一的數據就已經沒有了,現在以2取模,本來結果為2的key說不定就會被指向其他的master,那么這部分數據還是會取不到,直接造成大量的請求直接去數據庫拿數據。所以傳統的hash算法多用在數據庫分庫分表上,對應高并發的緩存存儲會有不小的問題,對于高并發場景是不能接受的。

2.一致性hash算法(自動緩存遷移)+虛擬節點(自動負載均衡)

一致性hash算法的原理如下圖所示:

一致性hash算法的原理簡介

一致性hash算法的弊端:

一致性hash算法的弊端

使用虛擬節點來解決熱點數據問題

虛擬節點解決數據熱點問題

3.redis cluster的hash slot 算法

????????redis cluster有固定的16384個hash slot,對每個key計算CRC16值,然后對16384取模,可以獲取key對應的hash slot,redis cluster中每個master都會持有部分slot,比如有3個master,那么可能每個master持有5000多個hash slot,hash slot讓node的增加和移除很簡單,增加一個master,就將其他master的hash slot移動部分過去,減少一個master,就將它的hash slot移動到其他master上去,移動hash slot的成本是非常低的。

redis hash slot 原理簡介

????????redis cluster 使用的hash? slot算法可以使請求均勻的打在每臺master上,即使一臺服務器宕機,短時間內這臺宕機的master上的數據不能訪問,但是redis cluster會快速的將這臺master上的hash slot 轉移到別的master上,其他master上的數據并不會受到影響,因為每個key都有它對應的hash slot,而且移動這些hash slot速度很快,成本也很低。

? ? ? ? 如果你想要指定數據走指定的hash slot,redis cluster 也會有相應的API可以實現,通過hash tag實現。

?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 227,702評論 6 531
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,143評論 3 415
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 175,553評論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,620評論 1 307
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,416評論 6 405
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 54,940評論 1 321
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,024評論 3 440
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,170評論 0 287
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,709評論 1 333
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,597評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,784評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,291評論 5 357
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,029評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,407評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,663評論 1 280
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,403評論 3 390
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,746評論 2 370

推薦閱讀更多精彩內容