Redis集群的個人理解

Redis有三種集群模式离咐,分別是:主從模式队秩、Sentinel模式雷酪、Cluster模式思瘟。

主從模式:

主從模式是三種里面最簡單的,在主從復(fù)制中,數(shù)據(jù)庫分為兩類:主數(shù)據(jù)庫和從數(shù)據(jù)庫。
特點(diǎn)如下:
1.主數(shù)據(jù)庫可以進(jìn)行讀寫操作,當(dāng)讀寫操作導(dǎo)致數(shù)據(jù)變化時會自動的將數(shù)據(jù)同步給從數(shù)據(jù)庫畏吓。
2.從數(shù)據(jù)庫一般都是只讀的,并且接收主數(shù)據(jù)庫同步過來的數(shù)據(jù)卫漫。
3.一個master可以擁有多個slave菲饼,但是一個slave只能有一個master.
4.slave掛了并不會影響其他的salve和master的讀寫,重啟后會將數(shù)據(jù)從master同步過來列赎。
5.master掛了以后宏悦,不影響slave的讀,但是redis不在提供寫服務(wù)包吝,master重啟以后才重新對外提供寫服務(wù)饼煞。
6.master掛了以后,不會在slave節(jié)點(diǎn)重新選一個slave.

工作機(jī)制:
當(dāng)slave啟動后诗越,主動向master發(fā)送SYNC命令砖瞧。master接收到SYNC命令后在后臺保存快照(RBD)和緩存保存快照這段時間的命令,然后將保存的快照文件和緩存命令發(fā)送給slave嚷狞。slave接收到了快照文件和命令后加載快照文件和緩存的執(zhí)行命令块促。
復(fù)制初始化后荣堰,master每次接到寫的命令后都會同步發(fā)送給slave,保證數(shù)據(jù)的一致性竭翠。
缺點(diǎn):
master節(jié)點(diǎn)在主從模式中唯一振坚,如果master掛掉,則redis無法對外提供寫服務(wù)斋扰。

哨兵模式(Sentinel)模式:

主從模式的弊端就是不具備高可用渡八,當(dāng)master掛掉以后,Redis將不會再對外進(jìn)行寫操作传货,因此Sentinel應(yīng)運(yùn)而生屎鳍。
它的主要作用就是監(jiān)控redis集群的運(yùn)行狀況,
特點(diǎn)如下:
1.Sentinel模式就是建立在主從模式的基礎(chǔ)上问裕,如果只有一個redis節(jié)點(diǎn)哥艇,Sentinel就沒有任何意義。
2.當(dāng)master掛了以后僻澎,Sentinel會在slave中選擇一個作為master,并修改他們的配置文件十饥,其他的slave的配置文件也會被修改窟勃,比如slaveof屬性會指向新的master.
3當(dāng)master重新啟動后,它將不會再是master而是作為slave接收新的master的同步數(shù)據(jù)逗堵。
4.Sentinel因為也是一個進(jìn)程有掛掉的可能秉氧,所以Sentinel也會啟動多個形成一個Sentinel集群。
5.多Sentinel配置的時候蜒秤,Sentinel之間也會自動監(jiān)控汁咏。
6.當(dāng)主從模式配置密碼時,Sentinel也會同步配置信息修改到配置文件作媚,不需要擔(dān)心攘滩。
7.一個Sentinel或Sentinel集群可以管理多個redis,多個Sentinel也可以監(jiān)控同一個redis.
8.Sentinel最好不要和redis部署在同一個機(jī)器纸泡,不然redis掛了漂问,Sentinel也掛了。
工作機(jī)制:
1.每個sentinel以每秒鐘一次的頻率向它所知的master女揭,slave以及其他sentinel實例發(fā)送一個 ping命令
2.如果一個實例距離最后一次有效回復(fù)ping命令的時間超過所指定的值蚤假,那么這個實例會被sentinel標(biāo)記為主觀下線。
3.如果一個master被標(biāo)記為主觀下線吧兔,則正在監(jiān)視這個master的所有sentinel要以每秒一次的頻率確認(rèn)master的確進(jìn)入了主觀下線狀態(tài)
4.當(dāng)有足夠數(shù)量的sentinel(大于等于配置文件指定的值)在指定的時間范圍內(nèi)確認(rèn)master的確進(jìn)入了主觀下線狀態(tài)磷仰, 則master會被標(biāo)記為客觀下線 。
5.在一般情況下境蔼, 每個sentinel會以每 10 秒一次的頻率向它已知的所有master灶平,slave發(fā)送 INFO 命令
6.當(dāng)master被sentinel標(biāo)記為客觀下線時伺通,sentinel向下線的master的所有slave發(fā)送 INFO 命令的頻率會從 10 秒一次改為 1 秒一次
7.若沒有足夠數(shù)量的sentinel同意master已經(jīng)下線,master的客觀下線狀態(tài)就會被移除民逼;若master重新向sentinel的 PING 命令返回有效回復(fù)泵殴,master的主觀下線狀態(tài)就會被移除。

當(dāng)使用sentinel模式的時候拼苍,客戶端就不要直接連接Redis笑诅,而是連接sentinel的ip和port,由sentinel來提供具體的可提供服務(wù)的Redis實現(xiàn)疮鲫,這樣當(dāng)master節(jié)點(diǎn)掛掉以后吆你,sentinel就會感知并將新的master節(jié)點(diǎn)提供給使用者。

Cluster模式

sentinel模式基本可以滿足一般生產(chǎn)的需求俊犯,具備高可用性妇多。但是當(dāng)數(shù)據(jù)量過大到一臺服務(wù)器存放不下的情況時,主從模式或sentinel模式就不能滿足需求了燕侠,這個時候需要對存儲的數(shù)據(jù)進(jìn)行分片者祖,將數(shù)據(jù)存儲到多個Redis實例中。cluster模式的出現(xiàn)就是為了解決單機(jī)Redis容量有限的問題绢彤,將Redis的數(shù)據(jù)根據(jù)一定的規(guī)則分配到多臺機(jī)器七问。
cluster可以說是sentinel和主從模式的結(jié)合體,通過cluster可以實現(xiàn)主從和master重選功能茫舶,所以如果配置兩個副本三個分片的話械巡,就需要六個Redis實例。因為Redis的數(shù)據(jù)是根據(jù)一定規(guī)則分配到cluster的不同機(jī)器的饶氏,當(dāng)數(shù)據(jù)量過大時讥耗,可以新增機(jī)器進(jìn)行擴(kuò)容。
使用集群疹启,只需要將redis配置文件中的cluster-enable配置打開即可古程。每個集群中至少需要三個主數(shù)據(jù)庫才能正常運(yùn)行,新增節(jié)點(diǎn)非常方便喊崖。
cluster集群特點(diǎn):
1.多個redis節(jié)點(diǎn)網(wǎng)絡(luò)互聯(lián)籍琳,數(shù)據(jù)共享
2.所有的節(jié)點(diǎn)都是一主一從(也可以是一主多從),其中從不提供服務(wù)贷祈,僅作為備用
3.不支持同時處理多個key(如MSET/MGET)趋急,因為redis需要把key均勻分布在各個節(jié)點(diǎn)上,并發(fā)量很高的情況下同時創(chuàng)建key-value會降低性能并導(dǎo)致不可預(yù)測的行為
4.支持在線增加势誊、刪除節(jié)點(diǎn)
5.客戶端可以連接任何一個主節(jié)點(diǎn)進(jìn)行讀寫

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末呜达,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子粟耻,更是在濱河造成了極大的恐慌查近,老刑警劉巖眉踱,帶你破解...
    沈念sama閱讀 221,198評論 6 514
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異霜威,居然都是意外死亡谈喳,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,334評論 3 398
  • 文/潘曉璐 我一進(jìn)店門戈泼,熙熙樓的掌柜王于貴愁眉苦臉地迎上來婿禽,“玉大人,你說我怎么就攤上這事大猛∨で悖” “怎么了?”我有些...
    開封第一講書人閱讀 167,643評論 0 360
  • 文/不壞的土叔 我叫張陵挽绩,是天一觀的道長膛壹。 經(jīng)常有香客問我,道長唉堪,這世上最難降的妖魔是什么模聋? 我笑而不...
    開封第一講書人閱讀 59,495評論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮唠亚,結(jié)果婚禮上链方,老公的妹妹穿的比我還像新娘。我一直安慰自己趾撵,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,502評論 6 397
  • 文/花漫 我一把揭開白布共啃。 她就那樣靜靜地躺著占调,像睡著了一般。 火紅的嫁衣襯著肌膚如雪移剪。 梳的紋絲不亂的頭發(fā)上究珊,一...
    開封第一講書人閱讀 52,156評論 1 308
  • 那天,我揣著相機(jī)與錄音纵苛,去河邊找鬼剿涮。 笑死,一個胖子當(dāng)著我的面吹牛攻人,可吹牛的內(nèi)容都是我干的取试。 我是一名探鬼主播,決...
    沈念sama閱讀 40,743評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼怀吻,長吁一口氣:“原來是場噩夢啊……” “哼瞬浓!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起蓬坡,我...
    開封第一講書人閱讀 39,659評論 0 276
  • 序言:老撾萬榮一對情侶失蹤猿棉,失蹤者是張志新(化名)和其女友劉穎磅叛,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體萨赁,經(jīng)...
    沈念sama閱讀 46,200評論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡弊琴,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,282評論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了杖爽。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片敲董。...
    茶點(diǎn)故事閱讀 40,424評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖掂林,靈堂內(nèi)的尸體忽然破棺而出臣缀,到底是詐尸還是另有隱情,我是刑警寧澤泻帮,帶...
    沈念sama閱讀 36,107評論 5 349
  • 正文 年R本政府宣布精置,位于F島的核電站,受9級特大地震影響锣杂,放射性物質(zhì)發(fā)生泄漏脂倦。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,789評論 3 333
  • 文/蒙蒙 一元莫、第九天 我趴在偏房一處隱蔽的房頂上張望赖阻。 院中可真熱鬧,春花似錦踱蠢、人聲如沸火欧。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,264評論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽苇侵。三九已至,卻和暖如春企锌,著一層夾襖步出監(jiān)牢的瞬間榆浓,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,390評論 1 271
  • 我被黑心中介騙來泰國打工撕攒, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留陡鹃,地道東北人。 一個月前我還...
    沈念sama閱讀 48,798評論 3 376
  • 正文 我出身青樓抖坪,卻偏偏與公主長得像萍鲸,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子擦俐,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,435評論 2 359