Redis之旅--Redis集群(十一)

一扳还、Redis集群主從復(fù)制(一主兩從)

Redis 集群對(duì)節(jié)點(diǎn)使用了主從復(fù)制功能: 集群中的每個(gè)節(jié)點(diǎn)都有 1 個(gè)至 N 個(gè)復(fù)制品(replica)靖诗, 其中一個(gè)復(fù)制品為主節(jié)點(diǎn)(master), 而其余的 N-1 個(gè)復(fù)制品為從節(jié)點(diǎn)(slave)航揉。
簡(jiǎn)單的來(lái)說(shuō)就是一個(gè)主節(jié)點(diǎn)master可以擁有一個(gè)甚至多個(gè)從節(jié)點(diǎn)的slave,而一個(gè)slave又可以擁有多個(gè)slave,如此下去徙缴,形成了強(qiáng)大的多級(jí)服務(wù)器集群架構(gòu)。


多級(jí)服務(wù)器集群架構(gòu)

其中主節(jié)點(diǎn)以寫(xiě)為主(可寫(xiě)也可以讀)嘁信,從節(jié)點(diǎn)只能讀不可寫(xiě)入于样!【讀寫(xiě)分離場(chǎng)景】
其中主節(jié)點(diǎn)寫(xiě)入的數(shù)據(jù)會(huì)同步(不是準(zhǔn)實(shí)時(shí)的)到salve上,這樣如果主節(jié)點(diǎn)出現(xiàn)故障潘靖,數(shù)據(jù)丟失穿剖,則可以通過(guò)salve進(jìn)行恢復(fù)∝砸纾【容災(zāi)恢復(fù)場(chǎng)景糊余,注:因?yàn)閿?shù)據(jù)不是實(shí)時(shí)同步的,可能會(huì)存在從salve恢復(fù)數(shù)據(jù)后有數(shù)據(jù)丟失問(wèn)題】

綜上:下面是關(guān)于redis主從復(fù)制的一些特點(diǎn):
1.一個(gè)master可以有多個(gè)slave
2.除了多個(gè)slave連到相同的master外单寂,slave也可以連接其他slave形成圖狀結(jié)構(gòu)
3.主從復(fù)制不會(huì)阻塞master贬芥。也就是說(shuō)當(dāng)一個(gè)或多個(gè)slave與master進(jìn)行初次同步數(shù)據(jù)時(shí),master可以繼續(xù)處理client發(fā)來(lái)的請(qǐng)求凄贩。相反slave在初次同步數(shù)據(jù)時(shí)則會(huì)阻塞不能處理client的請(qǐng)求誓军。
4.主從復(fù)制可以用來(lái)提高系統(tǒng)的可伸縮性,我們可以用多個(gè)slave 專門(mén)用于client的讀請(qǐng)求,比如sort操作可以使用slave來(lái)處理疲扎。也可以用來(lái)做簡(jiǎn)單的數(shù)據(jù)冗余
5.可以在master禁用數(shù)據(jù)持久化昵时,只需要注釋掉master 配置文件中的所有save配置,然后只在slave上配置數(shù)據(jù)持久化椒丧。
6.可以用于讀寫(xiě)分離和容災(zāi)恢復(fù)壹甥。

二、Redis主從復(fù)制的常用的幾種方式

一主二仆 A(B壶熏、C) 一個(gè)Master兩個(gè)Slave
薪火相傳(去中心化)A - B - C 句柠,B既是主節(jié)點(diǎn)(C的主節(jié)點(diǎn)),又是從節(jié)點(diǎn)(A的從節(jié)點(diǎn))
反客為主(主節(jié)點(diǎn)down掉后棒假,手動(dòng)操作升級(jí)從節(jié)點(diǎn)為主節(jié)點(diǎn)) & 哨兵模式(主節(jié)點(diǎn)down掉后溯职,自動(dòng)升級(jí)從節(jié)點(diǎn)為主節(jié)點(diǎn))

三、Redis主從復(fù)制的搭建(一主二仆)

一主二仆帽哑,和反客為主模式谜酒。

  1. 修改redis.windows.conf配置
    6381文件夾,修改如下:

slaveof <masterip> <masterport>

slaveof 127.0.0.1 6380
6382文件夾:
port 6382
slaveof 127.0.0.1 6380

  1. 創(chuàng)建腳本start-server.bat
redis-server redis.windows.conf
  1. 啟動(dòng)測(cè)試
    啟動(dòng)規(guī)則:先啟動(dòng)主節(jié)點(diǎn)妻枕,然后在啟動(dòng)從節(jié)點(diǎn)僻族!

6380:

D:\6380>start-server.bat

6381:


從一

6382:


從二
  1. 查看主從信息


    主從信息

四粘驰、一主二仆測(cè)試

  1. 測(cè)試讀寫(xiě),【主節(jié)點(diǎn)可讀可寫(xiě)述么,從節(jié)點(diǎn)只能讀不可寫(xiě)】


    讀寫(xiě)測(cè)試
  2. 測(cè)試當(dāng)主節(jié)點(diǎn)shutdown后蝌数,從節(jié)點(diǎn)的狀態(tài)【從節(jié)點(diǎn)可讀,從節(jié)點(diǎn)也不會(huì)升級(jí)為主節(jié)點(diǎn)】


    不會(huì)升級(jí)
從節(jié)點(diǎn)可讀
  1. 測(cè)試當(dāng)主節(jié)點(diǎn)重新啟動(dòng)后度秘,從節(jié)點(diǎn)的狀態(tài)【從節(jié)點(diǎn)依然可以連接主節(jié)點(diǎn)】
從節(jié)點(diǎn)依然可以連接主節(jié)點(diǎn)

從節(jié)點(diǎn)依然可以連接主節(jié)點(diǎn)
  1. 反客為主
    測(cè)試當(dāng)主節(jié)點(diǎn)shutdown后顶伞,使用slaveof no one 是的6380成為主節(jié)點(diǎn),但是也只是主節(jié)點(diǎn),沒(méi)有任何從節(jié)點(diǎn)敷钾!


    主機(jī)關(guān)閉

使用slaveof no one命令變?yōu)橹鳌?/p>

(error) ERR unknown command 'slave'
127.0.0.1:6382> slave no one
(error) ERR unknown command 'slave'
127.0.0.1:6382> slaveof no one
OK
127.0.0.1:6382> info replication
反客為主

五枝哄、Redis主從復(fù)制的原理

當(dāng)設(shè)置好slave服務(wù)器后,slave會(huì)建立和master的連接,然后發(fā)送sync命令阻荒。
Master接到命令啟動(dòng)后臺(tái)的存盤(pán)進(jìn)程挠锥,同時(shí)收集所有接收到的用于修改數(shù)據(jù)集命令,在后臺(tái)進(jìn)程執(zhí)行完畢之后侨赡,master將傳送整個(gè)數(shù)據(jù)文件到slave,以完成一次完全同步蓖租。
全量復(fù)制:而slave服務(wù)在接收到數(shù)據(jù)庫(kù)文件數(shù)據(jù)后,將其存盤(pán)并加載到內(nèi)存中羊壹。(第一次全量)
增量復(fù)制:Master繼續(xù)將新的所有收集到的修改命令依次傳給slave,完成同步蓖宦。(之后增量)
但是只要是重新連接master,一次完全同步(全量復(fù)制)將被自動(dòng)執(zhí)行。
當(dāng)設(shè)置好slave服務(wù)器后油猫,slave會(huì)建立和master的連接稠茂,然后發(fā)送sync命令。無(wú)論是第一次同步建立的連接還是連接斷開(kāi)后的重新連接情妖,master都會(huì)啟動(dòng)一個(gè)后臺(tái)進(jìn)程睬关,將數(shù)據(jù)庫(kù)快照保存到文件中,同時(shí)master主進(jìn)程會(huì)開(kāi)始收集新的寫(xiě)命令并緩存起來(lái)毡证。后臺(tái)進(jìn)程完成寫(xiě)文件 后电爹,master就發(fā)送文件給slave,slave將文件保存到磁盤(pán)上料睛,然后加載到內(nèi)存恢復(fù)數(shù)據(jù)庫(kù)快照到slave上丐箩。接著master就會(huì)把緩存的命令轉(zhuǎn)發(fā)給slave。而且后續(xù)master收到的寫(xiě)命令都會(huì)通過(guò)開(kāi)始建立的連接發(fā)送給slave恤煞。從master到slave的同步數(shù)據(jù)的命令和從 client發(fā)送的命令使用相同的協(xié)議格式屎勘。當(dāng)master和slave的連接斷開(kāi)時(shí)slave可以自動(dòng)重新建立連接。如果master同時(shí)收到多個(gè) slave發(fā)來(lái)的同步連接命令居扒,只會(huì)使用啟動(dòng)一個(gè)進(jìn)程來(lái)寫(xiě)數(shù)據(jù)庫(kù)鏡像挑秉,然后發(fā)送給所有slave。

六苔货、Redis主從復(fù)制(一主兩從/一主多從)的分析

  1. IO劇增
    每次slave斷開(kāi)以后(無(wú)論是主動(dòng)斷開(kāi)犀概,還是網(wǎng)路故障)再連接master都要將master全部dump出來(lái)rdb,在aof夜惭,即同步的過(guò)程都要重新執(zhí)行一遍姻灶;所以要記住多臺(tái)slave不要一下都啟動(dòng)起來(lái),否則master可能IO劇增(間隔1-2分)
  2. 復(fù)制延遲
    由于所有的寫(xiě)操作都是先在Master上操作诈茧,然后同步更新到Slave上产喉,所以從Master同步到Slave機(jī)器有一定的延遲,當(dāng)系統(tǒng)很繁忙的時(shí)候敢会,延遲問(wèn)題會(huì)更加嚴(yán)重曾沈,Slave機(jī)器數(shù)量的增加也會(huì)使這個(gè)問(wèn)題更加嚴(yán)重。
  3. 可用性不高
    當(dāng)有主節(jié)點(diǎn)發(fā)生異常情況鸥昏,就會(huì)導(dǎo)致不能寫(xiě)入塞俱,導(dǎo)致業(yè)務(wù)出錯(cuò)!
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末吏垮,一起剝皮案震驚了整個(gè)濱河市障涯,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌膳汪,老刑警劉巖唯蝶,帶你破解...
    沈念sama閱讀 212,599評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異遗嗽,居然都是意外死亡粘我,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,629評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門(mén)痹换,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)征字,“玉大人,你說(shuō)我怎么就攤上這事晴音∪嶙荩” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 158,084評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵锤躁,是天一觀的道長(zhǎng)搁料。 經(jīng)常有香客問(wèn)我,道長(zhǎng)系羞,這世上最難降的妖魔是什么郭计? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,708評(píng)論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮椒振,結(jié)果婚禮上昭伸,老公的妹妹穿的比我還像新娘。我一直安慰自己澎迎,他們只是感情好庐杨,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,813評(píng)論 6 386
  • 文/花漫 我一把揭開(kāi)白布选调。 她就那樣靜靜地躺著,像睡著了一般灵份。 火紅的嫁衣襯著肌膚如雪仁堪。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 50,021評(píng)論 1 291
  • 那天填渠,我揣著相機(jī)與錄音弦聂,去河邊找鬼。 笑死氛什,一個(gè)胖子當(dāng)著我的面吹牛莺葫,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播枪眉,決...
    沈念sama閱讀 39,120評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼捺檬,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了瑰谜?” 一聲冷哼從身側(cè)響起欺冀,我...
    開(kāi)封第一講書(shū)人閱讀 37,866評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎萨脑,沒(méi)想到半個(gè)月后隐轩,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,308評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡渤早,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,633評(píng)論 2 327
  • 正文 我和宋清朗相戀三年职车,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片鹊杖。...
    茶點(diǎn)故事閱讀 38,768評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡悴灵,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出骂蓖,到底是詐尸還是另有隱情积瞒,我是刑警寧澤,帶...
    沈念sama閱讀 34,461評(píng)論 4 333
  • 正文 年R本政府宣布登下,位于F島的核電站茫孔,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏被芳。R本人自食惡果不足惜缰贝,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,094評(píng)論 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望畔濒。 院中可真熱鬧剩晴,春花似錦、人聲如沸侵状。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,850評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至绽左,卻和暖如春毛嫉,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背妇菱。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,082評(píng)論 1 267
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留暴区,地道東北人闯团。 一個(gè)月前我還...
    沈念sama閱讀 46,571評(píng)論 2 362
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像仙粱,于是被迫代替她去往敵國(guó)和親房交。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,666評(píng)論 2 350

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

  • 本篇就一下方面展開(kāi)分析 如何使用主從復(fù)制伐割? 主從復(fù)制的原理(重點(diǎn)是全量復(fù)制和部分復(fù)制候味、以及心跳機(jī)制) 實(shí)際應(yīng)用中需...
    lucode閱讀 989評(píng)論 0 5
  • redis redis是單線程的,但是一般的作為緩存使用的話隔心,redis足夠了白群,因?yàn)樗淖x寫(xiě)速度太快了。官方的一個(gè)...
    普度眾生的面癱青年閱讀 5,077評(píng)論 0 4
  • NOSQL類型簡(jiǎn)介鍵值對(duì):會(huì)使用到一個(gè)哈希表硬霍,表中有一個(gè)特定的鍵和一個(gè)指針指向特定的數(shù)據(jù)帜慢,如redis,volde...
    MicoCube閱讀 3,961評(píng)論 2 27
  • 本文是對(duì)Redis的集群部署模式一個(gè)學(xué)習(xí)總結(jié)唯卖,共包括如下章節(jié)內(nèi)容: 概述 主從集群模式 “哨兵”集群模式 Clus...
    我是老薛閱讀 936評(píng)論 0 4
  • 雪凌 1粱玲、雪凌之前的女朋友李子涵的肇事者是宋楓。 2拜轨、雪凌藏在錢(qián)包里的李子涵的照片抽减。 華雨瓊 1、她和李弘以及岳倩...
    MYDS微笑閱讀 305評(píng)論 0 1