redis鎖機(jī)制原理 redis是如何實(shí)現(xiàn)主從同步機(jī)制的?
redis是如何實(shí)現(xiàn)主從同步機(jī)制的?Redis支持主從同步。數(shù)據(jù)可以從主服務(wù)器同步到任意數(shù)量的從服務(wù)器,同步采用發(fā)布/訂閱機(jī)制。按同步內(nèi)容分為完全同步和部分同步;按同步時(shí)序分為初始化同步和實(shí)時(shí)數(shù)據(jù)同步
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))來執(zhí)行備份操作。備份過程啟動(dòng)rdbsave函數(shù)來保存?zhèn)浞菸募DB。
3. 主節(jié)點(diǎn)監(jiān)控備份程序后,將RDB文件發(fā)送給從節(jié)點(diǎn)。
在通用redis主從模式下,主節(jié)點(diǎn)為寫入節(jié)點(diǎn),從節(jié)點(diǎn)為讀取節(jié)點(diǎn)。主節(jié)點(diǎn)收到用戶寫操作后,通過內(nèi)部函數(shù)通知從節(jié)點(diǎn)數(shù)據(jù)變化,數(shù)據(jù)同步為部分?jǐn)?shù)據(jù)同步。
應(yīng)該注意的是,主從復(fù)制不會(huì)阻止主機(jī)。同步數(shù)據(jù)時(shí),主機(jī)可以繼續(xù)處理客戶端請(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)。通常,這種主從模式是通過哨兵模式實(shí)現(xiàn)的。
Redis服務(wù)支持5000萬的QPS,有什么好的思路?
如果有面試問你這個(gè)問題,工資應(yīng)該是20萬年,其他選擇分紅應(yīng)該支付。這個(gè)想法不是堆機(jī)器就是堆機(jī)器。