redis-主從同步

CAP 原理

CAP 原理就比如分佈式領域的牛頓定律,它是分佈式存儲的理論基石。自打 CAP 的論文發表以後,分佈式存儲中間件猶如雨後春筍般一個一個涌現出來。理解這個原理其實很簡單,本節咱們首先對這個原理進行一些簡單的講解。網絡

  • C - Consistent ,一致性
  • A - Availability ,可用性
  • P - Partition tolerance ,分區容忍性

分佈式系統的節點每每都是分佈在不一樣的機器上進行網絡隔離開的,這意味着必然會有網絡斷開的風險,這個網絡斷開的場景的專業詞彙叫着「網絡分區」。異步

在網絡分區發生時,兩個分佈式節點之間沒法進行通訊,咱們對一個節點進行的修改操做將沒法同步到另一個節點,因此數據的「一致性」將沒法知足,由於兩個分佈式節點的數據再也不保持一致。除非咱們犧牲「可用性」,也就是暫停分佈式節點服務,在網絡分區發生時,再也不提供修改數據的功能,直到網絡情況徹底恢復正常再繼續對外提供服務。分佈式

一句話歸納 CAP 原理就是——網絡分區發生時,一致性和可用性兩難全spa

最終一致

Redis 的主從數據是異步同步的,因此分佈式的 Redis 系統並不知足「一致性」要求。當客戶端在 Redis 的主節點修改了數據後,當即返回,即便在主從網絡斷開的狀況下,主節點依舊能夠正常對外提供修改服務,因此 Redis 知足「可用性」。中間件

Redis 保證「最終一致性」,從節點會努力追趕主節點,最終從節點的狀態會和主節點的狀態將保持一致。若是網絡斷開了,主從節點的數據將會出現大量不一致,一旦網絡恢復,從節點會採用多種策略努力追遇上落後的數據,繼續盡力保持和主節點一致。同步

相關文章
相關標籤/搜索