redis-sentinel
工作原理
image.png
如圖
首先redis會(huì)維護(hù)一個(gè)sentinel集群,這個(gè)是集群高可用的心臟,一般由3~5個(gè)節(jié)點(diǎn)組成.
客戶端連接集群式,會(huì)先連接sentinel,通過(guò)sentinel查詢節(jié)點(diǎn)的地址,然后再連主節(jié)點(diǎn)進(jìn)行數(shù)據(jù)交互.
image.png
如圖
如果主節(jié)點(diǎn)掛了,那么客戶端會(huì)重新向sentinel要地址,sentinel會(huì)將最新的主節(jié)點(diǎn)地址告訴客戶端.
掛掉的節(jié)點(diǎn)會(huì)成為從節(jié)點(diǎn),從新的主節(jié)點(diǎn)那里建立復(fù)制關(guān)系.
缺點(diǎn)
redis主從異步復(fù)制,master主節(jié)點(diǎn)掛掉,從節(jié)點(diǎn)肯定會(huì)丟失消息,
主從延遲越大,丟的越多.
限制主從延遲過(guò)大:
min-slaves-to-write 1
至少有一個(gè)節(jié)點(diǎn)保證正常復(fù)制.
min-slaves-max-lag 10
超過(guò)10s沒(méi)有收到從節(jié)點(diǎn)的反饋,則認(rèn)為異常復(fù)制,從節(jié)點(diǎn)復(fù)制不正常了