1. 程式人生 > >redis非同步主從資料複製和叢集腦裂解決方案

redis非同步主從資料複製和叢集腦裂解決方案

對於redis主從架構,master接受到請求之後執行完會立刻返回給client,然後會非同步複製給其他master,此時會出現兩種問題:

  1. 當叢集節點間網路或其他問題導致非同步複製延時很高,如果此時master宕機了,毫無疑問會丟失延時的這段時間的資料
  2. 當網路分割槽變化導致master和slave節點之間無法正常通訊時,sentinel哨兵叢集會選舉slave為master,此時與之前master連線的client一直髮送資料,當我們進行恢復將原master當做新master的slave節點的時候,那麼後來一直髮送到原master記憶體的資料會丟失

解決上述兩種資料丟失的問題,redis配置檔案中有以下兩行:

min-slaves-to-write 3
min-slaves-max-lag 10

意味著至少要有3個slave節點與master保持10秒鐘以內的資料同步,否則master就不會接受新的請求我們需要採取其他措施來應對