Redis-代理(解決redis壓力)

為什么要使用反向代理

如果沒有反向代理肾请,一臺Redis客戶端需要跟很多個客戶端連接:


多客戶端與Redis鏈接.png

看著是不是很懵逼练慕?沒關系枉阵,主要連接需要消耗線程資源译红,沒有代理的話,Redis要將很大一部分的資源用在與客戶端建立連接上兴溜,Redis的高可用和可擴展性侦厚,無論是自帶的Sentinel還是Cluster都要求客戶端進行額外的支持耻陕,而目前基本上沒有合適的客戶端能夠做這些事情,客戶端來做這些事情也并不合適刨沦,它會讓維護變的跟糟糕诗宣。
因此客戶端和Redis服務端之間加一層代理成了一種理想的方案,代理屏蔽后端
Redis實現(xiàn)細節(jié)想客戶端提供Redis服務想诅,可以完美的解決Redis的高可用和擴展性的問題召庞。

如何使用代理

很簡單,將請求鏈接到代理服務器上来破,有Proxy負責將請求轉(zhuǎn)發(fā)到后面的Redis服務器實例:


Proxy.png

那么問題來了篮灼,如果Proxy掛了呢?
所以Proxy需要做集群徘禁,前面再加一層負載均衡(LVS),而其單機也存在故障的風險诅诱,所以整一個主備,備機通過KeeAlived來檢測主LVS的健康狀況晌坤,出現(xiàn)故障自動切換過去:

LVS keepalived.png
redis cluster

Redis Cluster 的實現(xiàn)方案十分的聰明逢艘,它的分區(qū)方式采用了虛擬槽分區(qū)。

Redis Cluster 首先會預設虛擬槽骤菠,每個槽就相當于一個數(shù)字,有一定范圍疤孕,每個槽映射一個數(shù)據(jù)子集商乎。
Redis Cluster中預設虛擬槽的范圍為 0 到 16383

  1. Redis Cluster 會把 16384 個槽按照節(jié)點數(shù)量進行平均分配,由節(jié)點進行管理祭阀。
  2. 當一個 key 過來的時候鹉戚,會對這個 key 按照 CRC16 規(guī)則進行 hash 運算。
  3. 把 hash 結(jié)果對 16383 進行取余专控。
  4. 把余數(shù)發(fā)送給 Redis 節(jié)點抹凳。
  5. 節(jié)點接收到數(shù)據(jù),驗證是否在自己管理的槽編號的范圍:
    5.1. 如果在自己管理的槽編號范圍內(nèi)伦腐,則把數(shù)據(jù)保存到數(shù)據(jù)槽中赢底,然后返回執(zhí)行結(jié)果。
    5.2. 如果在自己管理的槽編號范圍外柏蘑,則會把數(shù)據(jù)發(fā)送給正確的節(jié)點幸冻,由正確的節(jié)點來把數(shù)據(jù)保存在對應的槽中。
    注意:Redis Cluster 的節(jié)點之間會共享消息咳焚,每個節(jié)點都會知道是哪個節(jié)點負責哪個范圍內(nèi)的數(shù)據(jù)槽
    虛擬槽分布方式中洽损,由于每個節(jié)點管理一部分數(shù)據(jù)槽,數(shù)據(jù)保存到數(shù)據(jù)槽中革半。當節(jié)點擴容或者縮容時碑定,對數(shù)據(jù)槽進行重新分配遷移即可流码,數(shù)據(jù)不會丟失。
    cluster.png

————————————————————
坐標帝都延刘,白天上班族漫试,晚上是知識的分享者
如果讀完覺得有收獲的話,歡迎點贊加關注

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
禁止轉(zhuǎn)載访娶,如需轉(zhuǎn)載請通過簡信或評論聯(lián)系作者商虐。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市崖疤,隨后出現(xiàn)的幾起案子秘车,更是在濱河造成了極大的恐慌,老刑警劉巖劫哼,帶你破解...
    沈念sama閱讀 218,941評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件叮趴,死亡現(xiàn)場離奇詭異,居然都是意外死亡权烧,警方通過查閱死者的電腦和手機眯亦,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,397評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來般码,“玉大人妻率,你說我怎么就攤上這事“遄#” “怎么了宫静?”我有些...
    開封第一講書人閱讀 165,345評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長券时。 經(jīng)常有香客問我孤里,道長,這世上最難降的妖魔是什么橘洞? 我笑而不...
    開封第一講書人閱讀 58,851評論 1 295
  • 正文 為了忘掉前任捌袜,我火速辦了婚禮,結(jié)果婚禮上炸枣,老公的妹妹穿的比我還像新娘虏等。我一直安慰自己,他們只是感情好抛虏,可當我...
    茶點故事閱讀 67,868評論 6 392
  • 文/花漫 我一把揭開白布博其。 她就那樣靜靜地躺著,像睡著了一般迂猴。 火紅的嫁衣襯著肌膚如雪慕淡。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,688評論 1 305
  • 那天沸毁,我揣著相機與錄音峰髓,去河邊找鬼傻寂。 笑死,一個胖子當著我的面吹牛携兵,可吹牛的內(nèi)容都是我干的疾掰。 我是一名探鬼主播,決...
    沈念sama閱讀 40,414評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼徐紧,長吁一口氣:“原來是場噩夢啊……” “哼静檬!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起并级,我...
    開封第一講書人閱讀 39,319評論 0 276
  • 序言:老撾萬榮一對情侶失蹤拂檩,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后嘲碧,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體稻励,經(jīng)...
    沈念sama閱讀 45,775評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,945評論 3 336
  • 正文 我和宋清朗相戀三年愈涩,在試婚紗的時候發(fā)現(xiàn)自己被綠了望抽。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,096評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡履婉,死狀恐怖煤篙,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情毁腿,我是刑警寧澤舰蟆,帶...
    沈念sama閱讀 35,789評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站狸棍,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏味悄。R本人自食惡果不足惜草戈,卻給世界環(huán)境...
    茶點故事閱讀 41,437評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望侍瑟。 院中可真熱鬧唐片,春花似錦、人聲如沸涨颜。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,993評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽庭瑰。三九已至星持,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間弹灭,已是汗流浹背督暂。 一陣腳步聲響...
    開封第一講書人閱讀 33,107評論 1 271
  • 我被黑心中介騙來泰國打工揪垄, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人逻翁。 一個月前我還...
    沈念sama閱讀 48,308評論 3 372
  • 正文 我出身青樓饥努,卻偏偏與公主長得像,于是被迫代替她去往敵國和親八回。 傳聞我的和親對象是個殘疾皇子酷愧,可洞房花燭夜當晚...
    茶點故事閱讀 45,037評論 2 355

推薦閱讀更多精彩內(nèi)容

  • Redis管道的使用原文介紹:http://redis.cn/topics/pipelining.html[htt...
    zzj0990閱讀 730評論 0 8
  • 關于擊穿溶浴、穿透和雪崩你真的了解麼?相信你看完了以下我的介紹滴铅,會有所了解... 擊穿 通俗的說擊穿:前提是對某一ke...
    zzj0990閱讀 5,259評論 12 63
  • 簡介 Redis 發(fā)布訂閱(pub/sub)是一種消息通信模式:發(fā)送者(pub)發(fā)送消息戳葵,訂閱者(sub)接收消息...
    zzj0990閱讀 994評論 0 7
  • CAP CAP原理就好比分布式領域的牛頓定律,它是分布式理論的基石汉匙。原理簡單講解:C - Consistent拱烁, ...
    zzj0990閱讀 635評論 0 9
  • 今天特意將靜態(tài)代理、JDK動態(tài)代理噩翠、CGLIB動態(tài)代理 和 String AOP整理如下戏自,與各位看客分享下。 1....
    zzj0990閱讀 195評論 0 7