redis集群詳解

https://blog.csdn.net/miss1181248983/article/details/90056960?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522159833452019725219956331%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=159833452019725219956331&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_click~default-4-90056960.first_rank_ecpm_v3_pc_rank_v2&utm_term=redis%E9%9B%86%E7%BE%A4&spm=1018.2118.3001.4187

Redis有三種集群模式入愧,分別是:

* 主從模式

* Sentinel模式

* Cluster模式

主從模式是三種模式中最簡單的,在主從復制中稚铣,數(shù)據(jù)庫分為兩類:主數(shù)據(jù)庫(master)和從數(shù)據(jù)庫(slave)攘滩。

其中主從復制有如下特點:

* 主數(shù)據(jù)庫可以進行讀寫操作腰埂,當讀寫操作導致數(shù)據(jù)變化時會自動將數(shù)據(jù)同步給從數(shù)據(jù)庫

* 從數(shù)據(jù)庫一般都是只讀的耕肩,并且接收主數(shù)據(jù)庫同步過來的數(shù)據(jù)

* 一個master可以擁有多個slave八孝,但是一個slave只能對應(yīng)一個master

* slave掛了不影響其他slave的讀和master的讀和寫,重新啟動后會將數(shù)據(jù)從master同步過來

* master掛了以后灰瞻,不影響slave的讀情组,但redis不再提供寫服務(wù)燥筷,master重啟后redis將重新對外提供寫服務(wù)

* master掛了以后,不會在slave節(jié)點中重新選一個master

工作機制:

當slave啟動后院崇,主動向master發(fā)送SYNC命令。master接收到SYNC命令后在后臺保存快照(RDB持久化)和緩存保存快照這段時間的命令袍祖,然后將保存的快照文件和緩存的命令發(fā)送給slave底瓣。slave接收到快照文件和命令后加載快照文件和緩存的執(zhí)行命令。

復制初始化后蕉陋,master每次接收到的寫命令都會同步發(fā)送給slave捐凭,保證主從數(shù)據(jù)一致性。

缺點:

從上面可以看出凳鬓,master節(jié)點在主從模式中唯一茁肠,若master掛掉,則redis無法對外提供寫服務(wù)缩举。

Sentinel模式

Sentinel模式介紹

主從模式的弊端就是不具備高可用性垦梆,當master掛掉以后,Redis將不能再對外提供寫入操作仅孩,因此sentinel應(yīng)運而生托猩。

sentinel中文含義為哨兵,它的作用就是監(jiān)控redis集群的運行狀況辽慕,特點如下:

* sentinel模式是建立在主從模式的基礎(chǔ)上京腥,如果只有一個Redis節(jié)點,sentinel就沒有任何意義

* 當master掛了以后溅蛉,sentinel會在slave中選擇一個做為master公浪,并修改它們的配置文件,其他slave的配置文件也會被修改船侧,比如slaveof屬性會指向新的master

* 當master重新啟動后欠气,它將不再是master而是做為slave接收新的master的同步數(shù)據(jù)

* sentinel因為也是一個進程有掛掉的可能,所以sentinel也會啟動多個形成一個sentinel集群

* 多sentinel配置的時候勺爱,sentinel之間也會自動監(jiān)控

* 當主從模式配置密碼時晃琳,sentinel也會同步將配置信息修改到配置文件中,不需要擔心

* 一個sentinel或sentinel集群可以管理多個主從Redis琐鲁,多個sentinel也可以監(jiān)控同一個redis

* sentinel最好不要和Redis部署在同一臺機器卫旱,不然Redis的服務(wù)器掛了以后,sentinel也掛了

工作機制:

* 每個sentinel以每秒鐘一次的頻率向它所知的master围段,slave以及其他sentinel實例發(fā)送一個 PING 命令

* 如果一個實例距離最后一次有效回復 PING 命令的時間超過 down-after-milliseconds 選項所指定的值顾翼, 則這個實例會被sentinel標記為主觀下線。

* 如果一個master被標記為主觀下線奈泪,則正在監(jiān)視這個master的所有sentinel要以每秒一次的頻率確認master的確進入了主觀下線狀態(tài)

* 當有足夠數(shù)量的sentinel(大于等于配置文件指定的值)在指定的時間范圍內(nèi)確認master的確進入了主觀下線狀態(tài)适贸, 則master會被標記為客觀下線

* 在一般情況下灸芳, 每個sentinel會以每 10 秒一次的頻率向它已知的所有master,slave發(fā)送 INFO 命令

* 當master被sentinel標記為客觀下線時拜姿,sentinel向下線的master的所有slave發(fā)送 INFO 命令的頻率會從 10 秒一次改為 1 秒一次

* 若沒有足夠數(shù)量的sentinel同意master已經(jīng)下線烙样,master的客觀下線狀態(tài)就會被移除;

? 若master重新向sentinel的 PING 命令返回有效回復蕊肥,master的主觀下線狀態(tài)就會被移除

當使用sentinel模式的時候谒获,客戶端就不要直接連接Redis,而是連接sentinel的ip和port壁却,由sentinel來提供具體的可提供服務(wù)的Redis實現(xiàn)批狱,這樣當master節(jié)點掛掉以后,sentinel就會感知并將新的master節(jié)點提供給使用者展东。

Cluster模式

Cluster模式介紹

sentinel模式基本可以滿足一般生產(chǎn)的需求赔硫,具備高可用性。但是當數(shù)據(jù)量過大到一臺服務(wù)器存放不下的情況時盐肃,主從模式或sentinel模式就不能滿足需求了爪膊,這個時候需要對存儲的數(shù)據(jù)進行分片,將數(shù)據(jù)存儲到多個Redis實例中恼蓬。cluster模式的出現(xiàn)就是為了解決單機Redis容量有限的問題惊完,將Redis的數(shù)據(jù)根據(jù)一定的規(guī)則分配到多臺機器。

cluster可以說是sentinel和主從模式的結(jié)合體处硬,通過cluster可以實現(xiàn)主從和master重選功能小槐,所以如果配置兩個副本三個分片的話,就需要六個Redis實例荷辕。因為Redis的數(shù)據(jù)是根據(jù)一定規(guī)則分配到cluster的不同機器的凿跳,當數(shù)據(jù)量過大時,可以新增機器進行擴容疮方。

使用集群控嗜,只需要將redis配置文件中的cluster-enable配置打開即可。每個集群中至少需要三個主數(shù)據(jù)庫才能正常運行骡显,新增節(jié)點非常方便疆栏。

cluster集群特點:

* 多個redis節(jié)點網(wǎng)絡(luò)互聯(lián),數(shù)據(jù)共享

* 所有的節(jié)點都是一主一從(也可以是一主多從)惫谤,其中從不提供服務(wù)壁顶,僅作為備用

* 不支持同時處理多個key(如MSET/MGET),因為redis需要把key均勻分布在各個節(jié)點上溜歪,

? 并發(fā)量很高的情況下同時創(chuàng)建key-value會降低性能并導致不可預(yù)測的行為

* 支持在線增加若专、刪除節(jié)點

* 客戶端可以連接任何一個主節(jié)點進行讀寫

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市蝴猪,隨后出現(xiàn)的幾起案子调衰,更是在濱河造成了極大的恐慌膊爪,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,378評論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件嚎莉,死亡現(xiàn)場離奇詭異米酬,居然都是意外死亡,警方通過查閱死者的電腦和手機趋箩,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,970評論 3 399
  • 文/潘曉璐 我一進店門淮逻,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人阁簸,你說我怎么就攤上這事『哒桑” “怎么了启妹?”我有些...
    開封第一講書人閱讀 168,983評論 0 362
  • 文/不壞的土叔 我叫張陵,是天一觀的道長醉旦。 經(jīng)常有香客問我饶米,道長,這世上最難降的妖魔是什么车胡? 我笑而不...
    開封第一講書人閱讀 59,938評論 1 299
  • 正文 為了忘掉前任檬输,我火速辦了婚禮,結(jié)果婚禮上匈棘,老公的妹妹穿的比我還像新娘丧慈。我一直安慰自己,他們只是感情好主卫,可當我...
    茶點故事閱讀 68,955評論 6 398
  • 文/花漫 我一把揭開白布逃默。 她就那樣靜靜地躺著,像睡著了一般簇搅。 火紅的嫁衣襯著肌膚如雪完域。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,549評論 1 312
  • 那天瘩将,我揣著相機與錄音吟税,去河邊找鬼。 笑死姿现,一個胖子當著我的面吹牛肠仪,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播建钥,決...
    沈念sama閱讀 41,063評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼藤韵,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了熊经?” 一聲冷哼從身側(cè)響起泽艘,我...
    開封第一講書人閱讀 39,991評論 0 277
  • 序言:老撾萬榮一對情侶失蹤欲险,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后匹涮,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體天试,經(jīng)...
    沈念sama閱讀 46,522評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,604評論 3 342
  • 正文 我和宋清朗相戀三年然低,在試婚紗的時候發(fā)現(xiàn)自己被綠了喜每。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,742評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡雳攘,死狀恐怖带兜,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情吨灭,我是刑警寧澤刚照,帶...
    沈念sama閱讀 36,413評論 5 351
  • 正文 年R本政府宣布,位于F島的核電站喧兄,受9級特大地震影響无畔,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜吠冤,卻給世界環(huán)境...
    茶點故事閱讀 42,094評論 3 335
  • 文/蒙蒙 一浑彰、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧拯辙,春花似錦郭变、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,572評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至遭赂,卻和暖如春循诉,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背撇他。 一陣腳步聲響...
    開封第一講書人閱讀 33,671評論 1 274
  • 我被黑心中介騙來泰國打工茄猫, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人困肩。 一個月前我還...
    沈念sama閱讀 49,159評論 3 378
  • 正文 我出身青樓划纽,卻偏偏與公主長得像,于是被迫代替她去往敵國和親锌畸。 傳聞我的和親對象是個殘疾皇子勇劣,可洞房花燭夜當晚...
    茶點故事閱讀 45,747評論 2 361