詳解Redis主從復(fù)制(自動(dòng)同步到備機(jī)的master/slaver機(jī)制)

[重要通告]如您遇疑難雜癥,本站支持知識(shí)付費(fèi)業(yè)務(wù),掃右邊二維碼加博主微信,可節(jié)省您寶貴時(shí)間哦!

概念:

主從復(fù)制就是主機(jī)數(shù)據(jù)更新后,根據(jù)配置和策略,自動(dòng)同步到備機(jī)的master/slaver機(jī)制,Master以寫(xiě)為主,Slave以讀為主。

配置:

(1)“一主二仆”策略

準(zhǔn)備三臺(tái)redis服務(wù)器:主服務(wù)器A,從服務(wù)器B1、從服務(wù)器B2。服務(wù)器B1、B2同步A數(shù)據(jù),A1負(fù)責(zé)寫(xiě)操作,B1、B2負(fù)責(zé)讀操作。

A服務(wù)器IP:168.7.5.74,端口6379

B1服務(wù)器IP:168.7.5.75,端口6379

B2服務(wù)器IP:168.7.5.76,端口6379

  • 使用命令

  在服務(wù)器B1、B2上分別執(zhí)行如下命令,成為A服務(wù)器的從庫(kù):

slaveof 168.7.5.74?6379

  使用命令可查看當(dāng)前庫(kù)role、master_host、manter_port、connected_slaves相關(guān)配置信息:

 info replication

  注意:

a、當(dāng)主庫(kù)宕機(jī)后,從庫(kù)仍是slave角色,仍負(fù)責(zé)接受讀操作;

b、當(dāng)主庫(kù)恢復(fù)服務(wù)后,從庫(kù)B1、B2繼續(xù)同步主庫(kù)A的數(shù)據(jù),服務(wù)照舊;

c、當(dāng)從庫(kù)與master斷開(kāi)連接后,如果使用的是命令配置,需要重新使用命令才能連接到主庫(kù);

d、當(dāng)從庫(kù)連接master后,master會(huì)先一次性將當(dāng)前數(shù)據(jù)全量同步到salve上,后續(xù)增量同步。

從庫(kù)復(fù)制原理:

Slave 啟動(dòng)成功后連接到 master 后,將發(fā)送一條sync命令,master接收到命令后,在后臺(tái)啟動(dòng)存盤(pán)進(jìn)程,同時(shí)收集所有接收到的用于修改數(shù)據(jù)集的命令,在后臺(tái)進(jìn)程執(zhí)行完畢后,master將傳送整個(gè)數(shù)據(jù)文件到slave,以完成一次全量同步。只要重新連接master,將自動(dòng)執(zhí)行一次全量復(fù)制(完全同步)。

  • 使用配置文件

  ??在需要成為從庫(kù)的redis配置文件中添加配置"replicaof 10.7.5.74 6379"即可。與命令配置不同的是,從庫(kù)重啟服務(wù)后將自動(dòng)同步主庫(kù),無(wú)需額外操作。

? ? ? ? ?

(2)“薪火相傳”策略

  準(zhǔn)備三臺(tái)redis服務(wù)器:服務(wù)器A,服務(wù)器B、服務(wù)器C。將服務(wù)器B設(shè)置為服務(wù)器A的從庫(kù),將服務(wù)器C設(shè)置為服務(wù)器B的從庫(kù):masterA <-- slaverB <-- slaverC。

A服務(wù)器IP:168.7.5.74,端口6379

B服務(wù)器IP:168.7.5.75,端口6379

C服務(wù)器IP:168.7.5.76,端口6379

執(zhí)行如下命令進(jìn)行該策略配置:

在服務(wù)器B上執(zhí)行:slaveof 168.7.5.74?6379

在服務(wù)器C上執(zhí)行:slaveof 168.7.5.75 6379

  注意:

    a、服務(wù)器A的角色為 master,服務(wù)器B和C的角色為 slaver;

b、當(dāng)主庫(kù)A宕機(jī)后,在從庫(kù)B上執(zhí)行命令?slaverof no one?將從庫(kù)B角色變?yōu)?salve ,從庫(kù)C無(wú)需操作,將繼續(xù)使用同步B;

c、當(dāng)A重啟服務(wù)器后,與BC庫(kù)組成的體系毫無(wú)關(guān)系,需重新執(zhí)行命令加入;

d、salverof no one :是當(dāng)前數(shù)據(jù)庫(kù)停止與其他數(shù)據(jù)庫(kù)的同步,并轉(zhuǎn)換為主數(shù)據(jù)庫(kù)。

優(yōu)點(diǎn):去除“一主二仆”策略的中心化,減輕master庫(kù)寫(xiě)的壓力。

缺點(diǎn):從庫(kù)存在備份延遲

(3)哨兵模式

  原理:在后臺(tái)自動(dòng)監(jiān)控主機(jī)是否故障,如果故障了,根據(jù)投票自動(dòng)將從庫(kù)轉(zhuǎn)為主庫(kù)。

  ?配置:

  ?a、創(chuàng)建哨兵模式配置文件。在redis.conf目錄下創(chuàng)建文件?sentinel.conf?(名稱固定),內(nèi)容如下:

sentinel monitor hostname 127.0.0.1 6379 1??

hostname 127.0.0.1 6379?:分別是被監(jiān)控主機(jī)的主機(jī)名、IP及端口號(hào)

1指定策略:主機(jī)宕機(jī)后,slave投票決定誰(shuí)接替主機(jī)

b、啟動(dòng)哨兵模式

    ?redis-sentinel /usr/redis/sentinel.conf

  注意:

    a、若當(dāng)前master宕機(jī)后,服務(wù)將在從庫(kù)中選出新的master;

b、若舊master重啟后,它將自動(dòng)成為新的master的slave;

c、一個(gè)哨兵(sentinel)可以監(jiān)控多個(gè)master。

 

應(yīng)用:

讀寫(xiě)分離、容災(zāi)備份

主從復(fù)制的缺點(diǎn):

復(fù)制的延遲,寫(xiě)操作都在master上,然后同步到slave上,所以會(huì)有一定的延遲,同時(shí)slave機(jī)器數(shù)量的增加也會(huì)使延遲問(wèn)題更加嚴(yán)重。

問(wèn)題未解決?付費(fèi)解決問(wèn)題加Q或微信 2589053300 (即Q號(hào)又微信號(hào))右上方掃一掃可加博主微信

所寫(xiě)所說(shuō),是心之所感,思之所悟,行之所得;文當(dāng)無(wú)敷衍,落筆求簡(jiǎn)潔。 以所舍,求所獲;有所依,方所成!

支付寶贊助
微信贊助

免責(zé)聲明,若由于商用引起版權(quán)糾紛,一切責(zé)任均由使用者承擔(dān)。

您必須遵守我們的協(xié)議,如您下載該資源,行為將被視為對(duì)《免責(zé)聲明》全部?jī)?nèi)容的認(rèn)可->聯(lián)系老梁投訴資源
LaoLiang.Net部分資源來(lái)自互聯(lián)網(wǎng)收集,僅供用于學(xué)習(xí)和交流,請(qǐng)勿用于商業(yè)用途。如有侵權(quán)、不妥之處,請(qǐng)聯(lián)系站長(zhǎng)并出示版權(quán)證明以便刪除。 敬請(qǐng)諒解! 侵權(quán)刪帖/違法舉報(bào)/投稿等事物聯(lián)系郵箱:service@laoliang.net
意在交流學(xué)習(xí),歡迎贊賞評(píng)論,如有謬誤,請(qǐng)聯(lián)系指正;轉(zhuǎn)載請(qǐng)注明出處: » 詳解Redis主從復(fù)制(自動(dòng)同步到備機(jī)的master/slaver機(jī)制)

發(fā)表回復(fù)

本站承接,網(wǎng)站推廣(SEM,SEO);軟件安裝與調(diào)試;服務(wù)器或網(wǎng)絡(luò)推薦及配置;APP開(kāi)發(fā)與維護(hù);網(wǎng)站開(kāi)發(fā)修改及維護(hù); 各財(cái)務(wù)軟件安裝調(diào)試及注冊(cè)服務(wù)(金蝶,用友,管家婆,速達(dá),星宇等);同時(shí)也有客戶管理系統(tǒng),人力資源,超市POS,醫(yī)藥管理等;

立即查看 了解詳情