1)原子性(Atomicity):redis
事務裏的全部操做要麼所有作完,要麼都不作,事務成功的條件是事務裏的全部操做都成功。sql
2)一致性(Consistency):mongodb
數據庫要一直處於一致的狀態,事務的運行不會改變數據庫本來的一致性約束。數據庫
3)獨立性(Isolation):服務器
指併發的事務之間不會相互影響,一個事務要訪問的數據正在被另外一個事務修改,那麼在另外一個事務提交以前,看到的數據是未改變的。網絡
4)持久性(Durability):架構
持久性是指事務提交後,他所作的修改將會永久的保存在數據庫上,即便出現宕機也不會丟失。併發
(nosql三個有且只能知足兩個)nosql
1)強一致性(Consistency)分佈式
2)可用性(Availability)
3)分區容錯性(Partition tolerance)
CAP理論的核心是:一個分佈式系統不可能同時很好的知足一致性、可用性和分區容錯性三個需求
所以,CAP原理將NOSQL數據庫分紅了知足如下原則的三大類:
1)CA -單點集羣,知足一致性,可用性的系統,一般在可擴展性上不太強大。
注:傳統Oracle數據庫
2)CP -知足一致性、分區容錯性的系統,一般性能不是特別高。
注:大多數網站架構的選擇
3)AP -知足可用性、分區容錯性的系統,一般可能對一致性要求低一些。
注:redis、mongodb
爲了解決關係數據庫強一致性引發的問題而引發的可用性下降而提出的解決方案
BASE由三個術語縮寫:
1)基本可用(Basically Available)
2)軟狀態(Soft state)
3)最終一直(Eventually Consistent)
其思想爲:經過系統放鬆對某一時刻數據一致性的要求來換取系統總體伸縮性和性能上的改觀。
由多臺計算機和通訊的軟件組件經過計算機網絡鏈接(本地網絡或廣域網)組成。分佈式系統是創建在網絡之上的軟件系統。正式由於軟件的特性,因此分佈式系統具備高度的內聚性和透明性。所以,網絡和分佈式系統之間的區別更多的在於高層軟件(特別是操做系統),而不是硬件。分佈式系統能夠應用在不一樣的平臺上。如:PC、工做站、局域網和廣域網上等。
(簡單來講~)
1)分佈式:不一樣的多臺服務器上面部署不一樣的服務模塊(工程),他們之間經過 Rpc 或 Rmi 之間通訊和調用,對外提供服務和組內協做。
2)集羣: 不一樣的多臺服務器上面部署相同的服務模塊,經過分佈式調度軟件進行統一的調度,對外提供服務和訪問。
感謝來自尚硅谷的視頻講解~~~