redis主從同步機(jī)制 怎么實(shí)現(xiàn)redis和數(shù)據(jù)庫(kù)的同步?
怎么實(shí)現(xiàn)redis和數(shù)據(jù)庫(kù)的同步?怎么實(shí)現(xiàn)redis和數(shù)據(jù)庫(kù)的同步?1:讀取數(shù)據(jù)時(shí),請(qǐng)先從redis進(jìn)行檢查。如果沒(méi)有,則在數(shù)據(jù)庫(kù)中檢查,同時(shí)寫(xiě)入redis,并設(shè)置過(guò)期時(shí)間。2:保存數(shù)據(jù)時(shí),需要分析具
怎么實(shí)現(xiàn)redis和數(shù)據(jù)庫(kù)的同步?
怎么實(shí)現(xiàn)redis和數(shù)據(jù)庫(kù)的同步?
1:讀取數(shù)據(jù)時(shí),請(qǐng)先從redis進(jìn)行檢查。如果沒(méi)有,則在數(shù)據(jù)庫(kù)中檢查,同時(shí)寫(xiě)入redis,并設(shè)置過(guò)期時(shí)間。2:保存數(shù)據(jù)時(shí),需要分析具體情況。您可以選擇將其同時(shí)插入到數(shù)據(jù)庫(kù)和redis中(如果存儲(chǔ)在redis中,最好設(shè)置到期時(shí)間),也可以選擇直接插入到數(shù)據(jù)庫(kù)中,較少考慮一些問(wèn)題。
redis是如何實(shí)現(xiàn)主從同步機(jī)制的?
Redis支持主從同步。數(shù)據(jù)可以從主服務(wù)器同步到任意數(shù)量的從服務(wù)器,同步采用發(fā)布/訂閱機(jī)制。
按同步內(nèi)容分為完全同步和部分同步;
按同步時(shí)序分為初始化同步和實(shí)時(shí)數(shù)據(jù)同步;
初始化同步通常是為完全同步添加子節(jié)點(diǎn)。
1. 從機(jī)啟動(dòng)時(shí),向主機(jī)發(fā)送同步指令,主機(jī)接收并調(diào)用sync的synccommand功能進(jìn)行同步。
2. synccommand函數(shù)將啟動(dòng)rdbsavebackgroundbackup進(jìn)程(如果該進(jìn)程存在,則不需要?jiǎng)?chuàng)建啟動(dòng))來(lái)執(zhí)行備份操作。備份過(guò)程啟動(dòng)rdbsave函數(shù)來(lái)保存?zhèn)浞菸募DB。
3. 主節(jié)點(diǎn)監(jiān)控備份程序后,將RDB文件發(fā)送給從節(jié)點(diǎn)。
在通用redis主從模式下,主節(jié)點(diǎn)為寫(xiě)入節(jié)點(diǎn),從節(jié)點(diǎn)為讀取節(jié)點(diǎn)。主節(jié)點(diǎn)收到用戶(hù)寫(xiě)操作后,通過(guò)內(nèi)部函數(shù)通知從節(jié)點(diǎn)數(shù)據(jù)變化,數(shù)據(jù)同步為部分?jǐn)?shù)據(jù)同步。
應(yīng)該注意的是,主從復(fù)制不會(huì)阻止主機(jī)。同步數(shù)據(jù)時(shí),主機(jī)可以繼續(xù)處理客戶(hù)端請(qǐng)求。同時(shí),在主從模式下,只有一個(gè)主節(jié)點(diǎn),可以有多個(gè)從節(jié)點(diǎn)。當(dāng)運(yùn)行狀況檢查發(fā)現(xiàn)主節(jié)點(diǎn)不可用時(shí),其中一個(gè)從節(jié)點(diǎn)將升級(jí)到主節(jié)點(diǎn)。通常,這種主從模式是通過(guò)哨兵模式實(shí)現(xiàn)的。