《Redis开发与运维》笔记-复制
《Redis開發(fā)與運(yùn)維》筆記-復(fù)制
- 配置
- 建立復(fù)制
- 斷開復(fù)制
- 安全性
- 傳輸延遲
- 原理
- 復(fù)制過程
- 數(shù)據(jù)同步
- 全量復(fù)制
- 部分復(fù)制
配置
建立復(fù)制
建立復(fù)制有三種方式:
斷開復(fù)制
直接執(zhí)行命令斷開復(fù)制,slaveof no one
slaveof no oneRedis可以直接通過slaveof命令切換主節(jié)點(diǎn)
Redis在切換主節(jié)點(diǎn)過程中,會先清理刪除本地舊數(shù)據(jù),在進(jìn)行復(fù)制操作。
安全性
一般在設(shè)置Redis配置中,我們會通過設(shè)置requirepass參數(shù)進(jìn)行密碼驗(yàn)證。所以在從節(jié)點(diǎn)復(fù)制主節(jié)點(diǎn)就需要配置參數(shù)masterauth來配置主節(jié)點(diǎn)密碼。
在復(fù)制過程中,一般需要配置從節(jié)點(diǎn)為只讀屬性,防止修改從節(jié)點(diǎn)數(shù)據(jù)導(dǎo)致主從節(jié)點(diǎn)數(shù)據(jù)不一致,通過設(shè)置參數(shù)slave-read-only
傳輸延遲
復(fù)制過程中,會存在網(wǎng)絡(luò)延遲等問題。Redis提供了一個配置可以設(shè)置進(jìn)行優(yōu)化
//默認(rèn)下此配置為關(guān)閉 repl-disable-tcp-nodelay no當(dāng)關(guān)閉時,主節(jié)點(diǎn)產(chǎn)生的命令數(shù)據(jù)無論大小都會及時地發(fā)送給從節(jié)點(diǎn),這樣主從節(jié)點(diǎn)的延遲會變小,但是會增加網(wǎng)絡(luò)帶寬消耗。
當(dāng)開啟時,主節(jié)點(diǎn)會合并較小的TCP數(shù)據(jù)包從而減少帶寬。默認(rèn)發(fā)送時間間隔取決于Linux的內(nèi)核,一般默認(rèn)為40毫秒。
原理
復(fù)制過程
數(shù)據(jù)同步
數(shù)據(jù)同步過程分為全量同步和部分同步兩種方式。通過使用psync命令操作同步。
psync runId offsetpsync命令運(yùn)行需要組件支持:
主節(jié)點(diǎn)運(yùn)行id每次啟動都會變更,可以采用 debug reload命令執(zhí)行重啟,不會變更run_id
psync命令運(yùn)行流程
參數(shù)offset是當(dāng)前從節(jié)點(diǎn)保存的復(fù)制偏移量,如果是第一次參數(shù)復(fù)制,則默認(rèn)值是-1
如果主節(jié)點(diǎn)回復(fù) +FULLRESYNC 那么從節(jié)點(diǎn)將觸發(fā)全量復(fù)制
如果主節(jié)點(diǎn)回復(fù) +CONTINUE,從節(jié)點(diǎn)觸發(fā)部分復(fù)制
如果主節(jié)點(diǎn)回復(fù) -ERR 說明主節(jié)點(diǎn)不識別psync命令。可能是主節(jié)點(diǎn)版本過低。
全量復(fù)制
全量復(fù)制流程圖:
部分復(fù)制
部分復(fù)制流程圖:
總結(jié)
以上是生活随笔為你收集整理的《Redis开发与运维》笔记-复制的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 路畅安卓最新固件升级_路畅导航系统固件升
- 下一篇: grep, egrep, fgrep笔记