CAP理論概述

CAP理論

 

CAP原則,指在一個分佈式系統中,Consistency(一致性)、Availability(可用性)、Partitiontolerance(分區容錯性),三者不可同時擁有。redis

 

一致性(C) 在分佈式系統中的全部數據備份,在同一時刻是否一樣的值。mongodb

可用性(A) 在集羣中一部分節點故障後,集羣總體是否還能響應客戶端的讀寫要求。(對數據更新具有高可用性)數據庫

 

分區容錯性(P) 以實際效果而言,分區至關於對通訊的時限要求。系統若是不能在時限內達成數據一致性,就意味着發生了分區的狀況,必須就當前操在C和A之間作出選擇。json

 

CAP理論就是說在分佈式存儲系統中,最多隻能實現上面的兩點。而因爲當前的網絡硬件確定會出現延遲丟包等問題,因此分區容忍性是咱們必須須要實現的。因此咱們只能在一致性和可用性之間進行權衡,沒有NoSQL系統能同時保證這三點。網絡

 

與BASE的關係數據結構

BASE就是爲了解決關係數據庫強一致性引發的問題而引發的可用性下降而提出的解決方案。分佈式

BASE是下面三個術語的縮寫:隊列

  • 基本可用(Basically Available)
  • 軟狀態(Soft state)
  • 最終一致(Eventually consistent)
  1. 目前最快的KV數據庫,10W次/S, 知足了高可用性。
  2. Redis的k-v上的v能夠是普通的值(基本操做:get/set/del) v能夠是數值(除了基本操做以外還能夠支持數值的計算) v能夠是數據結構好比基於鏈表存儲的雙向循環list(除了基本操做以外還能夠支持數值的計算,能夠實現list的二頭pop,push)。若是v是list,可使用redis實現一個消息隊列。若是v是set,能夠基於redis實現一個tag系統。與mongodb不一樣的地方是後者的v能夠支持文檔,好比按照json的結構存儲。redis也能夠對存入的Key-Value設置expire時間。
  3. Redis的v的最大遠遠超過memcache。這也是實現消息隊列的一個前提。
相關文章
相關標籤/搜索