Redis主從復制

在分布式系統(tǒng)中為了解決單點問題哼转,通常會把數(shù)據(jù)復制多個副本部署到其他機器覆劈,滿足故障恢復和負載均衡等需求荔睹。
參與復制等Redis實例劃分為主節(jié)點(master)和從節(jié)點(slave)揖盘。默認情況下楷力,Redis都是主節(jié)點喊式。每個從節(jié)點只能有一個主節(jié)點,而主節(jié)點可以同時具有多個從節(jié)點萧朝。復制的數(shù)據(jù)流是單向的岔留,只能由主節(jié)點復制到從節(jié)點。
(切換主節(jié)點會清空之前所有的數(shù)據(jù)检柬,線上人工操作時小心slaveof在錯誤的節(jié)點上執(zhí)行或者指向錯誤的主節(jié)點)
主從復制過程:
1)在從節(jié)點執(zhí)行slaveof命令后献联,保存主節(jié)點的地址信息(ip和port)就直接返回;
2)從節(jié)點(slave)內(nèi)部通過每秒運行的定時任務(wù)維護復制相關(guān)邏輯何址,當定時任務(wù)發(fā)現(xiàn)存在新的主節(jié)點后里逆,會嘗試與該節(jié)點建立網(wǎng)絡(luò)連接;
從節(jié)點會建立一個socket套接字用爪,專門用于接受主節(jié)點發(fā)送的復制命令原押。
如果從節(jié)點無法建立連接,定時任務(wù)會無限重試直到連接成功或者執(zhí)行slaveof no one取消復制偎血。
3)發(fā)送ping命令诸衔;
連接建立成功后從節(jié)點發(fā)送ping請求進行首次通信,ping請求的主要目的:(1)檢測主從之間網(wǎng)絡(luò)套接字是否可用颇玷;(2)檢測主節(jié)點當前是否可接受處理命令笨农。
如果發(fā)送ping命令后,從節(jié)點沒有收到主節(jié)點的pong回復或者超時帖渠,比如網(wǎng)絡(luò)延時或者主節(jié)點正在阻塞無法響應(yīng)命令谒亦,從節(jié)點會斷開復制連接,下次定時任務(wù)會發(fā)起重連阿弃。
4)權(quán)限驗證诊霹;
如果主節(jié)點設(shè)置了requirepass參數(shù),則需要密碼驗證渣淳,從節(jié)點必須配置masterauth參數(shù)保證與主節(jié)點相同的密碼才能通過驗證脾还。如果驗證失敗復制將終止,從節(jié)點重新發(fā)起復制流程入愧。
5)同步數(shù)據(jù)集鄙漏;
主從復制連接正常通信后嗤谚,對于首次建立復制的場景,主節(jié)點會把持有的數(shù)據(jù)全部發(fā)送給從節(jié)點怔蚌,這部分操作是耗時最久的步驟巩步。
6)命令持續(xù)復制。
當主節(jié)點把當前的數(shù)據(jù)同步給從節(jié)點后桦踊,便完成了復制的建立流程椅野。接下來主節(jié)點會持續(xù)地 把寫命令發(fā)送給從節(jié)點,保證主從數(shù)據(jù)一致性籍胯。

主從節(jié)點之間維護心跳和偏移量檢查機制竟闪,保證主從節(jié)點通信正常和數(shù)據(jù)一致。
Redis為了保證高性能杖狼,復制過程是異步的炼蛤,寫命令處理完后直接返回給客戶端,不等待從節(jié)點復制完成蝶涩。因此從節(jié)點數(shù)據(jù)集會有延遲情況理朋。
當使用從節(jié)點用于讀寫分離時會存在數(shù)據(jù)延遲、過期數(shù)據(jù)绿聘、從節(jié)點可用性等問題嗽上,需要根據(jù)自身業(yè)務(wù)提前做出規(guī)避。
在運維過程中斜友,主節(jié)點存在多個從節(jié)點或一臺機器上部署大量主節(jié)點等情況下炸裆,會有復制風暴的風險。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末鲜屏,一起剝皮案震驚了整個濱河市烹看,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌洛史,老刑警劉巖惯殊,帶你破解...
    沈念sama閱讀 222,252評論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異也殖,居然都是意外死亡土思,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,886評論 3 399
  • 文/潘曉璐 我一進店門忆嗜,熙熙樓的掌柜王于貴愁眉苦臉地迎上來己儒,“玉大人,你說我怎么就攤上這事捆毫∩镣澹” “怎么了?”我有些...
    開封第一講書人閱讀 168,814評論 0 361
  • 文/不壞的土叔 我叫張陵绩卤,是天一觀的道長途样。 經(jīng)常有香客問我江醇,道長,這世上最難降的妖魔是什么何暇? 我笑而不...
    開封第一講書人閱讀 59,869評論 1 299
  • 正文 為了忘掉前任陶夜,我火速辦了婚禮,結(jié)果婚禮上裆站,老公的妹妹穿的比我還像新娘条辟。我一直安慰自己,他們只是感情好宏胯,可當我...
    茶點故事閱讀 68,888評論 6 398
  • 文/花漫 我一把揭開白布捂贿。 她就那樣靜靜地躺著,像睡著了一般胳嘲。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上扣草,一...
    開封第一講書人閱讀 52,475評論 1 312
  • 那天了牛,我揣著相機與錄音,去河邊找鬼辰妙。 笑死鹰祸,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的密浑。 我是一名探鬼主播蛙婴,決...
    沈念sama閱讀 41,010評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼尔破!你這毒婦竟也來了街图?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,924評論 0 277
  • 序言:老撾萬榮一對情侶失蹤懒构,失蹤者是張志新(化名)和其女友劉穎餐济,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體胆剧,經(jīng)...
    沈念sama閱讀 46,469評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡絮姆,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,552評論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了秩霍。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片篙悯。...
    茶點故事閱讀 40,680評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖铃绒,靈堂內(nèi)的尸體忽然破棺而出鸽照,到底是詐尸還是另有隱情,我是刑警寧澤匿垄,帶...
    沈念sama閱讀 36,362評論 5 351
  • 正文 年R本政府宣布移宅,位于F島的核電站归粉,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏漏峰。R本人自食惡果不足惜糠悼,卻給世界環(huán)境...
    茶點故事閱讀 42,037評論 3 335
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望浅乔。 院中可真熱鬧倔喂,春花似錦、人聲如沸靖苇。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,519評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽贤壁。三九已至悼枢,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間脾拆,已是汗流浹背馒索。 一陣腳步聲響...
    開封第一講書人閱讀 33,621評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留名船,地道東北人绰上。 一個月前我還...
    沈念sama閱讀 49,099評論 3 378
  • 正文 我出身青樓,卻偏偏與公主長得像渠驼,于是被迫代替她去往敵國和親蜈块。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,691評論 2 361

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