主從復制,是指將一臺Redis服務器的數(shù)據(jù),復制到其他的Redis服務器。前者稱為主節(jié)點(master),后者稱為從節(jié)點(slave);數(shù)據(jù)的復制是單向的,只能由主節(jié)點到從節(jié)點。
主從復制的作用主要包括:
數(shù)據(jù)冗余:主從復制實現(xiàn)了數(shù)據(jù)的熱備份,是持久化之外的一種數(shù)據(jù)冗余方式。
故障恢復:當主節(jié)點出現(xiàn)問題時,可以由從節(jié)點提供服務,實現(xiàn)快速的故障恢復;實際上是一種服務的冗余。
負載均衡:在主從復制的基礎上,配合讀寫分離,可以由主節(jié)點提供寫服務,由從節(jié)點提供讀服務(即寫Redis數(shù)據(jù)時應用連接主節(jié)點,讀Redis數(shù)據(jù)時應用連接從節(jié)點),分擔服務器負載;尤其是在寫少讀多的場景下,通過多個從節(jié)點分擔讀負載,可以大大提高Redis服務器的并發(fā)量。
高可用基石:除了上述作用以外,主從復制還是哨兵和集群能夠?qū)嵤┑幕A,因此說主從復制是Redis高可用的基礎。
主從庫之間采用的是讀寫分離的方式。
讀操作:主庫、從庫都可以接收;
寫操作:首先到主庫執(zhí)行,然后,主庫將寫操作同步給從庫。
注意:在2.8版本之前只有全量復制,而2.8版本后有全量和增量復制:
全量(同步)復制:比如次同步時
增量(同步)復制:只會把主從庫網(wǎng)絡斷連期間主庫收到的命令,同步給從庫