Redis主從同步策略有以下幾種:
全量復(fù)制:主節(jié)點(diǎn)將整個(gè)數(shù)據(jù)庫(kù)的數(shù)據(jù)發(fā)送給從節(jié)點(diǎn),從節(jié)點(diǎn)清空原有數(shù)據(jù),然后將接收到的數(shù)據(jù)進(jìn)行加載。全量復(fù)制會(huì)造成短暫的停機(jī)時(shí)間。
部分重同步(Partial Resynchronization):主節(jié)點(diǎn)只發(fā)送從上次同步之后修改的數(shù)據(jù)給從節(jié)點(diǎn),從節(jié)點(diǎn)接收到數(shù)據(jù)后,將其應(yīng)用到自己的數(shù)據(jù)庫(kù)中。部分重同步可以在一定程度上減少對(duì)主節(jié)點(diǎn)的負(fù)載和網(wǎng)絡(luò)帶寬的消耗。
增量復(fù)制(Incremental Replication):主節(jié)點(diǎn)將自己的寫操作記錄成命令日志,然后發(fā)送給從節(jié)點(diǎn),從節(jié)點(diǎn)通過(guò)執(zhí)行主節(jié)點(diǎn)的命令日志來(lái)達(dá)到數(shù)據(jù)同步的目的。增量復(fù)制可以實(shí)現(xiàn)實(shí)時(shí)的主從同步。
心跳檢測(cè)(Heartbeat Detection):主節(jié)點(diǎn)會(huì)定時(shí)向從節(jié)點(diǎn)發(fā)送心跳消息,檢測(cè)從節(jié)點(diǎn)的存活狀態(tài)。如果從節(jié)點(diǎn)長(zhǎng)時(shí)間沒(méi)有響應(yīng),主節(jié)點(diǎn)會(huì)認(rèn)為從節(jié)點(diǎn)已經(jīng)失效,然后進(jìn)行重新同步。
以上是常見(jiàn)的Redis主從同步策略,根據(jù)實(shí)際需求和性能要求,可以選擇適合的策略來(lái)進(jìn)行主從同步。