Redis包含master和slave兩種節(jié)點(diǎn):master節(jié)點(diǎn)對外提供讀寫服務(wù),slave節(jié)點(diǎn)作為master的數(shù)據(jù)備份,從主節(jié)點(diǎn)全量同步數(shù)據(jù),主從復(fù)制架構(gòu)下,默認(rèn)Slave是只讀的,如果寫入則會(huì)報(bào)錯(cuò),但可以通過設(shè)置slave-read-only參數(shù)為no改為可寫。
在上黨等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供成都網(wǎng)站設(shè)計(jì)、網(wǎng)站制作 網(wǎng)站設(shè)計(jì)制作定制網(wǎng)站,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站設(shè)計(jì),成都全網(wǎng)營銷,成都外貿(mào)網(wǎng)站建設(shè),上黨網(wǎng)站建設(shè)費(fèi)用合理。主從復(fù)制是由slave主動(dòng)觸發(fā),流程如下:
1.首先slave向master發(fā)起sync命令,發(fā)起后,master被動(dòng)的將新進(jìn)的slave節(jié)點(diǎn)加入到自己的主備復(fù)制集群。
2.master收到sync后,開啟bgsave操作。
3.bgsave完成后,master將快照信息發(fā)送給slave.
4.發(fā)送期間,master收到的來自用戶客戶單的新的寫命令,除了正常的響應(yīng)之外,都再存入一份到backlog隊(duì)列中。
5.快照信息發(fā)送完成后,master繼續(xù)發(fā)送backlog隊(duì)列信息。
6.backlog發(fā)送完成后,后續(xù)的寫操作同時(shí)發(fā)給slave來保持實(shí)時(shí)的異步復(fù)制。
slave端處理邏輯如下:
slave發(fā)送完sync后,繼續(xù)對外提供服務(wù)。
開始接收master的快照信息,同時(shí),將slave現(xiàn)有數(shù)據(jù)清空,并將master快照寫入自身內(nèi)存。
接收backlog內(nèi)容并執(zhí)行,期間對外提供讀請求。
繼續(xù)接收后續(xù)來自master的命令副本并繼續(xù)回放,以保持?jǐn)?shù)據(jù)和master一致。