為了使得集群在一部分節(jié)點(diǎn)下線或者無法與集群的大多數(shù)節(jié)點(diǎn)進(jìn)行通訊的情況下, 仍然可以正常運(yùn)作。
?redis 集群對節(jié)點(diǎn)使用了主從復(fù)制功能: 集群中的每個(gè)節(jié)點(diǎn)都有 1 個(gè)至 N 個(gè)復(fù)制品(replica), 其中一個(gè)復(fù)制品為主節(jié)點(diǎn)(master), 而其余的 N-1 個(gè)復(fù)制品為從節(jié)點(diǎn)(slave)。? ? ? ? ? ? ? ? ? (推薦學(xué)習(xí):Redis視頻教程)
Redis主從復(fù)制的常用的幾種方式
一主二仆 A(B、C) 一個(gè)Master兩個(gè)Slave
薪火相傳(去中心化)A – B – C ,B既是主節(jié)點(diǎn)(C的主節(jié)點(diǎn)),又是從節(jié)點(diǎn)(A的從節(jié)點(diǎn))
反客為主(主節(jié)點(diǎn)down掉后,手動(dòng)操作升級從節(jié)點(diǎn)為主節(jié)點(diǎn)) & 哨兵模式(主節(jié)點(diǎn)down掉后,自動(dòng)升級從節(jié)點(diǎn)為主節(jié)點(diǎn))
主從復(fù)制:
1、redis的復(fù)制功能是支持多個(gè)數(shù)據(jù)庫之間的數(shù)據(jù)同步。一類是主數(shù)據(jù)庫(master)一類是從數(shù)據(jù)庫(slave),主數(shù)據(jù)庫可以進(jìn)行讀寫操作,當(dāng)發(fā)生寫操作的時(shí)候自動(dòng)將數(shù)據(jù)同步到從數(shù)據(jù)庫,而從數(shù)據(jù)庫一般是只讀的,并接收主數(shù)據(jù)庫同步過來的數(shù)據(jù),一個(gè)主數(shù)據(jù)庫可以有多個(gè)從數(shù)據(jù)庫,而一個(gè)從數(shù)據(jù)庫只能有一個(gè)主數(shù)據(jù)庫。
2、通過redis的復(fù)制功能可以很好的實(shí)現(xiàn)數(shù)據(jù)庫的讀寫分離,提高服務(wù)器的負(fù)載能力。主數(shù)據(jù)庫主要進(jìn)行寫操作,而從數(shù)據(jù)庫負(fù)責(zé)讀操作。
1:當(dāng)一個(gè)從數(shù)據(jù)庫啟動(dòng)時(shí),會(huì)向主數(shù)據(jù)庫發(fā)送sync命令,
2:主數(shù)據(jù)庫接收到sync命令后會(huì)開始在后臺(tái)保存快照(執(zhí)行rdb操作),并將保存期間接收到的命令緩存起來
3:當(dāng)快照完成后,redis會(huì)將快照文件和所有緩存的命令發(fā)送給從數(shù)據(jù)庫。
4:從數(shù)據(jù)庫收到后,會(huì)載入快照文件并執(zhí)行收到的緩存的命令