redis 開發(fā)與運(yùn)維--讀書筆記

復(fù)制

  • 建立復(fù)制: 默認(rèn)redis 都是主節(jié)點(diǎn)。每個(gè)從節(jié)點(diǎn)只能復(fù)制到從節(jié)點(diǎn),而每個(gè)主節(jié)點(diǎn)可以同時(shí)具有多個(gè)從節(jié)點(diǎn)凸舵。復(fù)制的數(shù)據(jù)是單向的,只能有主節(jié)點(diǎn)到從節(jié)點(diǎn)锣披。配置復(fù)制:
    1. 配置文件中加入 slaveof {masterHost}{masterPort},重啟redis
    2. 啟動redis命令后加入 --slaveof {masterHost}{masterPort}
    3. redis直接使用命令 slaveof {masterHost}{masterPort}
  • 斷開復(fù)制: 從節(jié)點(diǎn)執(zhí)行slaveof no one 來斷開與主節(jié)點(diǎn)的復(fù)制關(guān)系
  • 斷開復(fù)制流程:
    1) 斷開與主節(jié)點(diǎn)復(fù)制關(guān)系
    2) 從節(jié)點(diǎn)晉升為主節(jié)點(diǎn)
  • 切主操作流程:
    1) 斷開與舊主節(jié)點(diǎn)復(fù)制關(guān)系
    2) 與新主節(jié)點(diǎn)建立復(fù)制關(guān)系
    3) 刪除從節(jié)點(diǎn)當(dāng)前所有數(shù)據(jù)
    4) 對新主節(jié)點(diǎn)進(jìn)行復(fù)制操作
  • 只讀:從節(jié)點(diǎn)使用 slave-read-only=yes 配置為只讀模式贞间。
  • 傳輸延遲 參數(shù) repl-disable-tcp-nodelay 控制是否關(guān)閉TCP_NODELAY, 默認(rèn)no 及開 tcp-nodelay 功能,主節(jié)點(diǎn)會合并較小的TCP數(shù)據(jù)包從而節(jié)省帶寬雹仿。默認(rèn)發(fā)送實(shí)際取決于Liunx的內(nèi)核增热,這種配置會增大主從之間的延遲。當(dāng)關(guān)閉時(shí)胧辽,主節(jié)點(diǎn)產(chǎn)生的命令數(shù)據(jù)都會及時(shí)的發(fā)送給從節(jié)點(diǎn)峻仇,這樣主從延遲會變小,但增加網(wǎng)絡(luò)帶寬消耗
  • 拓?fù)洌?br> 1. 一主一從結(jié)構(gòu)
    2. 一主多從結(jié)構(gòu)
    3. 樹形主從結(jié)構(gòu)
  • 復(fù)制過程:
    1. 保存主節(jié)點(diǎn)信息
    2. 從節(jié)點(diǎn)內(nèi)部通過每秒運(yùn)行的定時(shí)任務(wù)維護(hù)復(fù)制相關(guān)邏輯邑商,當(dāng)定時(shí)任務(wù)發(fā)現(xiàn)存在新的主節(jié)點(diǎn)后摄咆,會嘗試與該節(jié)點(diǎn)建立網(wǎng)絡(luò)連接,如果無法建立連接人断,定時(shí)任務(wù)會無限重試直到連接或者執(zhí)行slaveof no one取消復(fù)制
    3. 發(fā)送ping命令: ping命令沒有響應(yīng)會斷開連接等待下次定時(shí)任務(wù)發(fā)起重連
    4. 權(quán)限驗(yàn)證:主節(jié)點(diǎn)通過設(shè)置requirepass 參數(shù)進(jìn)行密碼驗(yàn)證吭从,從節(jié)點(diǎn)的復(fù)制連接通過一個(gè)特殊標(biāo)識的客戶端來完成,因此需要配置從節(jié)點(diǎn)的masterauth 參數(shù)與主節(jié)點(diǎn)密碼保持一致
    5. 同步數(shù)據(jù)集:主節(jié)點(diǎn)會把持有的數(shù)據(jù)全部發(fā)送給從節(jié)點(diǎn)
    6. 命令持續(xù)復(fù)制:主節(jié)點(diǎn)會持續(xù)地把命令發(fā)送個(gè)從節(jié)點(diǎn)恶迈,保證主從數(shù)據(jù)一致
  • 數(shù)據(jù)同步
    1. 復(fù)制偏移量:參與復(fù)制的主節(jié)點(diǎn)會維護(hù)自身復(fù)制偏移量涩金。主節(jié)點(diǎn)處理完寫入命令后,會把命令的字節(jié)長度做累加記錄,統(tǒng)計(jì)信息在 info replication 中的 master_repl_offset中步做,從節(jié)點(diǎn)每秒鐘會上報(bào)自身復(fù)制偏移量副渴,主節(jié)點(diǎn)會報(bào)存從節(jié)點(diǎn)偏移量。從節(jié)點(diǎn)接受到命令后也會累加自身偏移量全度。
    2. 復(fù)制積壓緩存區(qū):當(dāng)主節(jié)點(diǎn)發(fā)送命令給從節(jié)點(diǎn)時(shí)煮剧,還會寫入復(fù)制積壓緩沖區(qū),緩沖區(qū)先進(jìn)先出将鸵,能保存最近已復(fù)制數(shù)據(jù)勉盅,用于部分復(fù)制命令丟失補(bǔ)救
    3. 主節(jié)點(diǎn)運(yùn)行ID:每個(gè)redis節(jié)點(diǎn)啟動都會有一個(gè)動態(tài)分配的40位十六進(jìn)制字符串作為運(yùn)行ID,用來唯一標(biāo)示redis 節(jié)點(diǎn)顶掉。當(dāng)運(yùn)行ID變化后從節(jié)點(diǎn)將做全量復(fù)制菇篡。
    4. psync 命令:從節(jié)點(diǎn)使用psync 命令完成部分復(fù)制和全量復(fù)制功能
  • 心跳:
    1. 主節(jié)點(diǎn)默認(rèn)每隔10s對從節(jié)點(diǎn)發(fā)送ping命令,判讀從節(jié)點(diǎn)的存活性和連接狀態(tài)一喘。
    2. 從節(jié)點(diǎn)在主線程中每隔1秒給主節(jié)點(diǎn)上報(bào)自身復(fù)制偏移量
  • 異步復(fù)制:主節(jié)點(diǎn)自身處理完寫命令直接返回給客戶端驱还,并不等待從節(jié)點(diǎn)復(fù)制完成。主從復(fù)制過程是異步的凸克,會造成主從延遲议蟆,正常情況下延遲在1s左右
  • 讀寫分離遇到問題:
    1. 數(shù)據(jù)延遲 監(jiān)控偏移量,及時(shí)下線延遲大的節(jié)點(diǎn)
    2. 讀到過期數(shù)據(jù) 當(dāng)采樣速度跟不上過期速度萎战,redis 3.2 后解決了這個(gè)問題:從節(jié)點(diǎn)讀取數(shù)據(jù)后會檢查鍵的過期時(shí)間來決定是否返回咐容。
    3. 從節(jié)點(diǎn)故障 監(jiān)控延遲,及時(shí)下線
  • 惰性刪除 主節(jié)點(diǎn)每次處理讀取命令是檢查鍵是否超時(shí)蚂维,如果超時(shí)則執(zhí)行del命令刪除對象戳粒,之后同步給從庫。
  • 定時(shí)刪除 redis 主節(jié)點(diǎn)內(nèi)部定時(shí)任務(wù)會循環(huán)采樣一定數(shù)量的鍵虫啥,當(dāng)發(fā)現(xiàn)采樣的鍵過期時(shí)蔚约,執(zhí)行del命令,之后同步給從庫涂籽。
  • 復(fù)制風(fēng)暴 :大量從節(jié)點(diǎn)對同一主節(jié)點(diǎn)或同一臺機(jī)器的多個(gè)主節(jié)點(diǎn)短時(shí)間內(nèi)發(fā)起全量復(fù)制苹祟,規(guī)避方式對應(yīng)單節(jié)點(diǎn)復(fù)制風(fēng)暴采用樹狀復(fù)制結(jié)構(gòu),對應(yīng)單機(jī)器復(fù)制風(fēng)暴评雌,部署時(shí)打散主節(jié)點(diǎn)到多臺機(jī)器上树枫,主節(jié)點(diǎn)所在機(jī)器故障后提供故障轉(zhuǎn)移機(jī)制。
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末景东,一起剝皮案震驚了整個(gè)濱河市砂轻,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌斤吐,老刑警劉巖搔涝,帶你破解...
    沈念sama閱讀 211,194評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件丝里,死亡現(xiàn)場離奇詭異,居然都是意外死亡体谒,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,058評論 2 385
  • 文/潘曉璐 我一進(jìn)店門臼婆,熙熙樓的掌柜王于貴愁眉苦臉地迎上來抒痒,“玉大人,你說我怎么就攤上這事颁褂」氏欤” “怎么了?”我有些...
    開封第一講書人閱讀 156,780評論 0 346
  • 文/不壞的土叔 我叫張陵颁独,是天一觀的道長彩届。 經(jīng)常有香客問我,道長誓酒,這世上最難降的妖魔是什么樟蠕? 我笑而不...
    開封第一講書人閱讀 56,388評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮靠柑,結(jié)果婚禮上寨辩,老公的妹妹穿的比我還像新娘。我一直安慰自己歼冰,他們只是感情好靡狞,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,430評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著隔嫡,像睡著了一般甸怕。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上腮恩,一...
    開封第一講書人閱讀 49,764評論 1 290
  • 那天梢杭,我揣著相機(jī)與錄音,去河邊找鬼秸滴。 笑死式曲,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的缸榛。 我是一名探鬼主播吝羞,決...
    沈念sama閱讀 38,907評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼内颗!你這毒婦竟也來了钧排?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,679評論 0 266
  • 序言:老撾萬榮一對情侶失蹤均澳,失蹤者是張志新(化名)和其女友劉穎恨溜,沒想到半個(gè)月后符衔,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,122評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡糟袁,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,459評論 2 325
  • 正文 我和宋清朗相戀三年判族,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片项戴。...
    茶點(diǎn)故事閱讀 38,605評論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡形帮,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出周叮,到底是詐尸還是另有隱情辩撑,我是刑警寧澤,帶...
    沈念sama閱讀 34,270評論 4 329
  • 正文 年R本政府宣布仿耽,位于F島的核電站合冀,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏项贺。R本人自食惡果不足惜君躺,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,867評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望开缎。 院中可真熱鬧晰洒,春花似錦、人聲如沸啥箭。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,734評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽急侥。三九已至砌滞,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間坏怪,已是汗流浹背贝润。 一陣腳步聲響...
    開封第一講書人閱讀 31,961評論 1 265
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留铝宵,地道東北人打掘。 一個(gè)月前我還...
    沈念sama閱讀 46,297評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像鹏秋,于是被迫代替她去往敵國和親尊蚁。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,472評論 2 348