日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

nosql简答什么是最终一致性_NoSql的三大基石:CAP理论BASE最终一致性

發布時間:2023/12/3 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 nosql简答什么是最终一致性_NoSql的三大基石:CAP理论BASE最终一致性 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

關系型數據庫的局限

NoSql出現在關系型數據庫之后,主要是為了解決關系型數據庫的短板,我們先來看看隨著軟件行業的發展,關系型數據庫面臨了哪些挑戰:

1、高并發

一個最典型的就是電商網站,例如雙11,幾億大軍的點擊造成在某一時刻的并發量是很高的,傳統的關系型數據庫肯定已經是不堪重負了,如Oracle的Session數量推薦的才只有500。

2、高效率存儲海量數據

大數據時代,數據量已經不是用GB、TB來衡量了,而是EB、ZB了,面對這海量的數據,如何高效率的存儲這些數據,關系型數據庫無法解決這個問題,以Oracle為例,單機的物理擴展不僅成本高,而且難度也加大了。

3、高可用&高擴展

Oracle即使RAC能擴展數臺機器,但數量也是有限。

NoSql的出現即是為了解決這些問題了,但是NoSql并不是用來替代關系型數據庫的,因為它本身也有著不可克服的缺陷,俗話說,好處不可能都讓你占了。

關系型數據庫與NoSql一致性的比較

一般來說,構建NoSql,為了高可用和海量數據存儲,我們會選擇犧牲一致性,但這并不意味著我們不要一致性,而是我們可以選擇不實現強一致性,而實現弱一致性或者最終一致性。無論是在關系型數據庫或者NoSql中,我們都是通過事務來實現一致性,下面我們來討論兩者在一致性方面的差異:

關系型數據庫事務的4個基本特性ACID,即原子性(Atomicity)、一致性(Consistency)、隔離性(Isolation)、持久性(Durability)。

而對于分布式事務的特性BASE,則是反這個標準的,即基本可用(Basically Availble)、軟狀態/柔性事務(Soft-state)、最終一致性(Eventual Consistency)。下面是Brewer教授在PODC大會展示的ACID vs BASE:

前面我們說過,NoSql的出現是為了解決高并發、海量數據、高可用等問題的,因而一般分布式是最優選項,我們先來說一下分布式系統的特性:CAP理論,當然,這也是NoSql的特性:

CAP理論

CAP理論是Brewer教授提出的:一個分布式系統不能同時滿足一致性(Consistency)、可用性(Availability)和分區容錯性(Tolerance of network Partition)。魚和熊掌不可兼得。

一致性:任何一個讀操作總是能讀取到之前完成的寫操作結果,也就是在分布式環境中,多點的數據是一致的。

可用性:每一個操作總是能在確定的時間內返回,也不是系統隨時都是可用的。

分區容錯性:在出現網絡分區(如斷網)的情況下,分離的系統也能正常運行。

PS:這里有人可能會問,可用性與分區容錯性是不是一個意思(既然分區都可以容錯了,不就是可用么),個人理解這里可用性說的是調用不會被阻塞。

而市場上的NoSql則以CAP理論為指導,大多選擇實現了CAP理論的兩點(如CA、CP、AP),未實現的即其缺陷部分。下面則是常見NoSql系統的特性:

常見NoSql的分類

類型

部分代表

特點

列存儲

Hbase

Cassandra

Hypertable

顧名思義,是按列存儲數據的。最大的特點是方便存儲結構化和半結構化數據,方便做數據壓縮,對針對某一列或者某幾列的查詢有非常大的IO優勢。

文檔存儲

MongoDB

CouchDB

文檔存儲一般用類似json的格式存儲,存儲的內容是文檔型的。這樣也就有有機會對某些字段建立索引,實現關系數據庫的某些功能。

kv存儲

Tokyo Cabinet / Tyrant

Berkeley DB

MemcacheDB

Redis

可以通過key快速查詢到其value。一般來說,存儲不管value的格式,照單全收。(Redis包含了其他功能)

圖存儲

Neo4J

FlockDB

圖形關系的最佳存儲。使用傳統關系數據庫來解決的話性能低下,而且設計使用不方便。

對象存儲

db4o

Versant

通過類似面向對象語言的語法操作數據庫,通過對象的方式存取數據。

xml數據庫

Berkeley DB

XML

高效的存儲XML數據,并支持XML的內部查詢語法,比如XQuery,Xpath。

參考文檔

總結

以上是生活随笔為你收集整理的nosql简答什么是最终一致性_NoSql的三大基石:CAP理论BASE最终一致性的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。