詳解Redis主從復(fù)制(自動同步到備機的master/slaver機制)
[重要通告]如您遇疑難雜癥,本站支持知識付費業(yè)務(wù),掃右邊二維碼加博主微信,可節(jié)省您寶貴時間哦!
概念:
主從復(fù)制就是主機數(shù)據(jù)更新后,根據(jù)配置和策略,自動同步到備機的master/slaver機制,Master以寫為主,Slave以讀為主。
配置:
(1)“一主二仆”策略
準備三臺redis服務(wù)器:主服務(wù)器A,從服務(wù)器B1、從服務(wù)器B2。服務(wù)器B1、B2同步A數(shù)據(jù),A1負責寫操作,B1、B2負責讀操作。
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ù)器的從庫:
slaveof 168.7.5.74?6379
使用命令可查看當前庫role、master_host、manter_port、connected_slaves相關(guān)配置信息:
info replication
注意:
a、當主庫宕機后,從庫仍是slave角色,仍負責接受讀操作;
b、當主庫恢復(fù)服務(wù)后,從庫B1、B2繼續(xù)同步主庫A的數(shù)據(jù),服務(wù)照舊;
c、當從庫與master斷開連接后,如果使用的是命令配置,需要重新使用命令才能連接到主庫;
d、當從庫連接master后,master會先一次性將當前數(shù)據(jù)全量同步到salve上,后續(xù)增量同步。
從庫復(fù)制原理:
Slave 啟動成功后連接到 master 后,將發(fā)送一條sync命令,master接收到命令后,在后臺啟動存盤進程,同時收集所有接收到的用于修改數(shù)據(jù)集的命令,在后臺進程執(zhí)行完畢后,master將傳送整個數(shù)據(jù)文件到slave,以完成一次全量同步。只要重新連接master,將自動執(zhí)行一次全量復(fù)制(完全同步)。
- 使用配置文件
??在需要成為從庫的redis配置文件中添加配置"replicaof 10.7.5.74 6379"即可。與命令配置不同的是,從庫重啟服務(wù)后將自動同步主庫,無需額外操作。
? ? ? ? ?
(2)“薪火相傳”策略
準備三臺redis服務(wù)器:服務(wù)器A,服務(wù)器B、服務(wù)器C。將服務(wù)器B設(shè)置為服務(wù)器A的從庫,將服務(wù)器C設(shè)置為服務(wù)器B的從庫: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í)行如下命令進行該策略配置:
在服務(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、當主庫A宕機后,在從庫B上執(zhí)行命令?slaverof no one?將從庫B角色變?yōu)?salve ,從庫C無需操作,將繼續(xù)使用同步B;
c、當A重啟服務(wù)器后,與BC庫組成的體系毫無關(guān)系,需重新執(zhí)行命令加入;
d、salverof no one :是當前數(shù)據(jù)庫停止與其他數(shù)據(jù)庫的同步,并轉(zhuǎn)換為主數(shù)據(jù)庫。
優(yōu)點:去除“一主二仆”策略的中心化,減輕master庫寫的壓力。
缺點:從庫存在備份延遲
(3)哨兵模式
原理:在后臺自動監(jiān)控主機是否故障,如果故障了,根據(jù)投票自動將從庫轉(zhuǎn)為主庫。
?配置:
?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)控主機的主機名、IP及端口號
1指定策略:主機宕機后,slave投票決定誰接替主機
b、啟動哨兵模式
?redis-sentinel /usr/redis/sentinel.conf
注意:
a、若當前master宕機后,服務(wù)將在從庫中選出新的master;
b、若舊master重啟后,它將自動成為新的master的slave;
c、一個哨兵(sentinel)可以監(jiān)控多個master。
應(yīng)用:
讀寫分離、容災(zāi)備份
主從復(fù)制的缺點:
復(fù)制的延遲,寫操作都在master上,然后同步到slave上,所以會有一定的延遲,同時slave機器數(shù)量的增加也會使延遲問題更加嚴重。
問題未解決?付費解決問題加Q或微信 2589053300 (即Q號又微信號)右上方掃一掃可加博主微信
所寫所說,是心之所感,思之所悟,行之所得;文當無敷衍,落筆求簡潔。 以所舍,求所獲;有所依,方所成!