redis主從模式和哨兵模式 redis高可用實現(xiàn)原理?
redis高可用實現(xiàn)原理?redis的高可用性主要有主從模式、哨兵模式和集群模式。這些模式的具體實現(xiàn)原則和演進(jìn)思路可以參考:【redis高可用架構(gòu)演進(jìn)——今日頭條】https://m.toutiao.
redis高可用實現(xiàn)原理?
redis的高可用性主要有主從模式、哨兵模式和集群模式。這些模式的具體實現(xiàn)原則和演進(jìn)思路可以參考:【redis高可用架構(gòu)演進(jìn)——今日頭條】https://m.toutiao.com/is/eejkhKG/
redis是如何實現(xiàn)主從同步機制的?
Redis支持主從同步。數(shù)據(jù)可以從主服務(wù)器同步到任意數(shù)量的從服務(wù)器,同步采用發(fā)布/訂閱機制。
按同步內(nèi)容分為完全同步和部分同步;
按同步時序分為初始化同步和實時數(shù)據(jù)同步;
初始化同步通常是為完全同步添加子節(jié)點。
1. 從機啟動時,向主機發(fā)送同步指令,主機接收并調(diào)用sync的synccommand功能進(jìn)行同步。
2. synccommand函數(shù)將啟動rdbsavebackgroundbackup進(jìn)程(如果該進(jìn)程存在,則不需要創(chuàng)建啟動)來執(zhí)行備份操作。備份過程啟動rdbsave函數(shù)來保存?zhèn)浞菸募DB。
3. 主節(jié)點監(jiān)控備份程序后,將RDB文件發(fā)送給從節(jié)點。
在通用redis主從模式下,主節(jié)點為寫入節(jié)點,從節(jié)點為讀取節(jié)點。主節(jié)點收到用戶寫操作后,通過內(nèi)部函數(shù)通知從節(jié)點數(shù)據(jù)變化,數(shù)據(jù)同步為部分?jǐn)?shù)據(jù)同步。
應(yīng)該注意的是,主從復(fù)制不會阻止主機。同步數(shù)據(jù)時,主機可以繼續(xù)處理客戶端請求。同時,在主從模式下,只有一個主節(jié)點,可以有多個從節(jié)點。當(dāng)運行狀況檢查發(fā)現(xiàn)主節(jié)點不可用時,其中一個從節(jié)點將升級到主節(jié)點。通常,這種主從模式是通過哨兵模式實現(xiàn)的。