03[掌握]Redis的主從復(fù)制(Master/Slave)

1,行話

行話:也就是我們所說(shuō)的主從復(fù)制,主機(jī)數(shù)據(jù)更新后根據(jù)配置和策略,
自動(dòng)同步到備機(jī)的master/slave機(jī)制,Master以寫為主,Slave以讀為從


2,有什么作用

讀寫分離
容災(zāi)恢復(fù)


3,怎么使用

3.1,配從不配主

**3.2,配置命令 【SLAVEOF 主庫(kù)IP 主庫(kù)端口】 **
每次與master斷開之后,都需要重新連接,除非你配置進(jìn)redis.conf文件
Info replication可以查看

**3.3,詳細(xì)操作 **
①拷貝多個(gè)redis.conf文件
②開啟daemonize yes
③Pid文件名字
④指定端口
⑤Log文件名字
⑥D(zhuǎn)ump.rdb名字

3.4,一主二仆
演示問(wèn)題
1 切入點(diǎn)問(wèn)題?slave1、slave2是從頭開始復(fù)制還是從切入點(diǎn)開始復(fù)制?比如從k4進(jìn)來(lái),那之前的123是否也可以復(fù)制
2 從機(jī)是否可以寫?set可否?
3 主機(jī)shutdown后情況如何?從機(jī)是上位還是原地待命
4 主機(jī)又回來(lái)了后,主機(jī)新增記錄,從機(jī)還能否順利復(fù)制?
5 其中一臺(tái)從機(jī)down后情況如何?依照原有它能跟上大部隊(duì)嗎?

3.5,薪火相傳
上一個(gè)Slave可以是下一個(gè)slave的Master,Slave同樣可以接收其他 slaves的連接和同步請(qǐng)求,那么該slave作為了鏈條中下一個(gè)的master, 可以有效減輕master的寫壓力
中途變更轉(zhuǎn)向:會(huì)清除之前的數(shù)據(jù),重新建立拷貝最新的
Slaveof 新主庫(kù)IP 新主庫(kù)端口
3.6,反客為主
SLAVEOF no one
使當(dāng)前數(shù)據(jù)庫(kù)停止與其他數(shù)據(jù)庫(kù)的同步,轉(zhuǎn)成主數(shù)據(jù)庫(kù)


4,復(fù)制的原理

Slave啟動(dòng)成功連接到master后會(huì)發(fā)送一個(gè)sync命令
Master接到命令啟動(dòng)后臺(tái)的存盤進(jìn)程,同時(shí)收集所有接收到的用于修改數(shù)據(jù)集命令, 在后臺(tái)進(jìn)程執(zhí)行完畢之后,master將傳送整個(gè)數(shù)據(jù)文件到slave,以完成一次完全同步
全量復(fù)制:而slave服務(wù)在接收到數(shù)據(jù)庫(kù)文件數(shù)據(jù)后,將其存盤并加載到內(nèi)存中。
增量復(fù)制:Master繼續(xù)將新的所有收集到的修改命令依次傳給slave,完成同步
但是只要是重新連接master,一次完全同步(全量復(fù)制)將被自動(dòng)執(zhí)行


5,哨兵模式

5.1,什么是哨兵模式

反客為主的自動(dòng)版,能夠后臺(tái)監(jiān)控主機(jī)是否故障,如果故障了根據(jù)投票數(shù)自動(dòng)將從庫(kù)轉(zhuǎn)換為主庫(kù)

5.2,怎么玩(使用步驟)

調(diào)整結(jié)構(gòu),6379帶著80、81
自定義的/myredis目錄下新建sentinel.conf文件,名字絕不能錯(cuò)
配置哨兵,填寫內(nèi)容
   sentinel monitor 被監(jiān)控主機(jī)名字(自己起名字) 127.0.0.1 6379 1   如     sentinel monitor hos6379  127.0.0.1 6379 1
  上面最后一個(gè)數(shù)字1,表示主機(jī)掛掉后salve投票看讓誰(shuí)接替成為主機(jī),得票數(shù)多少后成為主機(jī)
啟動(dòng)哨兵   ./redis-sentinel /root/master-slaver/sentinel.conf 
正常主從演示
原有的master掛了
投票新選
重新主從繼續(xù)開工,info replication查查看
問(wèn)題:如果之前的master重啟回來(lái),會(huì)不會(huì)雙master沖突?

** 5.3,一組sentinel能同時(shí)監(jiān)控多個(gè)Master**


6,復(fù)制的缺點(diǎn)

由于所有的寫操作都是先在Master上操作,然后同步更新到Slave上,所以從Master同步到Slave機(jī)器有一定的延遲,當(dāng)系統(tǒng)很繁忙的時(shí)候,延遲問(wèn)題會(huì)更加嚴(yán)重,Slave機(jī)器數(shù)量的增加也會(huì)使這個(gè)問(wèn)題更加嚴(yán)重。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容