Redis學習筆記(五)--分散式資料庫CAP原理
傳統資料庫的ACID
Atomicity 原子性
事務裡面的所有操作要麼全部做完,要麼都不做,事務成功的條件是事務裡的所有操作都成功,只要有一個操作失敗,整個事務就失敗,需要回滾。
Consistency 一致性
資料庫要一直處於一致的狀態,事務的執行不會改變資料庫原本的一致性約束。
Isolation 獨立性
併發的事務之間不會互相影響,如果一個事物要訪問的資料正在被另一個事務修改,只要另外一個事務未提交,他所訪問的資料就不受未提交事務的影響。
Durability永續性
一旦事務提交後,他所做的修改將會永久的儲存在資料庫上,即使出現宕機也不會丟失
CAP
Consistency 強一致性
Availability 可用性
Partition tolerance 分割槽容錯性
CAP的3進2
CAP理論的核心是:一個分散式系統不可能同時很好的滿足一致性,可用性和分割槽容錯性這三個需求,最多隻能同時較好的滿足兩個。
因此,根據CAP原理將NoSQL資料庫分成了滿足CA原則,滿足CP原則和滿足AP原則的三大類:
CA–單點叢集,滿足一致性,可用性的系統,通常在可擴充套件性上不太強大
CP–滿足一致性,分割槽容忍性的系統,通常效能不是特別高
AP–滿足可用性,分割槽容忍性的系統,通常可能對一致性要求低一些
由於當前的網路硬體肯定會出現延遲丟包等問題,所以“分割槽容錯性是我們必須需要實現的”,所以我們只能在一致性和可用性之間進行權衡, 沒有NoSQL系統能同時保證這三點。
BASE
BASE為了解決關係資料庫強一致性引起的問題而引起的可用性降低而提出的解決方案。
基本可用(Basically Available)
軟狀態(Soft state)
最終一致(Eventually consistent)
通過讓系統放鬆對某一時刻資料一致性的要求來換取系統整體伸縮性和效能上改觀。
分散式和叢集簡介
分散式:不同的多臺伺服器上面部署不同的模組工程
叢集:不同的多臺伺服器上面部署相同的模組工程