天天看點

CouchDB與CouchBase的比較

《CouchDB與CouchBase的比較》

一、概述

Apache CouchDB和CouchBase兩個NoSQL資料庫,都是開源、免費的NoSQL文檔型資料庫,都使用了JSON作為其文檔格式。Apache CouchDB和CouchBase的相似性極高,但也有不少不同之處。基本上CouchBase結合了Apache CouchDB和MemBase兩種資料庫的功能特性而建構的。CouchDB的面向文檔的資料模型、索引和查詢功能與MemBase分布式鍵值資料模型相結合、高性能、易于擴充、始終保持接通的能力,這就是CouchBase。

簡而言之,

CouchBase = CouchDB + MemBase

但是,CouchBase并非CouchDB的新版本,相反,它實際上是MemBase的新版本。CouchBase Server實際上是MemBase Server的新名字。CouchBase并非CouchDB的替代,而是MemBase的替代版本。CouchBase仍然使用了Memcached協定,而沒有使用CouchDB的RESTful風格的API。同時,CouchDB仍然是CouchDB,是Apache旗下的項目,由Apache負責維護和演進。而且,CouchDB并非過時的CouchBase,CouchDB仍然是一個比較活躍的開源項目。而CouchBase是另一個完全獨立的項目。

CouchDB與CouchBase的比較

二、CouchDB和CouchBase的相同之處:

1)CouchDB和CouchBase兩者都是NoSQL文檔資料庫,都使用了JSON作為其文檔格式。

2)CouchDB和CouchBase兩者都使用了相同的索引和查詢方法。

3)CouchDB和CouchBase兩者都使用了相同的複制系統的方法,除了P2P複制。

盡管CouchBase的開發結合了CouchDB和MemBase的功能特性,但是CouchDB和CouchBase還是有很多的不同之處,尤其是在叢集、緩存、許可證等方面。

三、CouchDB和CouchBase的不同之處:

1、叢集系統

CouchBase内建了一個叢集系統,允許資料自動跨多種節點傳播。而CouchDB是一個單節點的解決方案,支援P2P複制技術,它更适合分散式的系統,以及适合不需要把資料傳播到多個節點的場景。

2、緩存系統

CouchBase與MemBase相似,它内建了一個基于Memcached的緩存技術,始終如一地提供了亞毫秒級的讀寫性能,在每個節點上每秒可執行上百萬個操作。Apache CouchDB是一個基于磁盤的資料庫,通常它更适合超低延遲或吞吐量需求不高的場合。

3、許可證系統

CouchBase不完全是開源、免費的軟體。它有兩個版本:社群版(免費、不包含最新的Bug修複)和企業版(使用有限制、需經過CouchBase公司的稽核,還有一些很多人覺得無法接受的其他條款限制)。

CouchDB是一個開源、免費的軟體(沒有附帶任何條件),它基于Apache License 2.0許可證。

4、其它的不同

CouchBase不支援以下CouchDB的特性:

1)RESTful API(隻用于檢視,無CRUD操作)

2)P2P複制

3)支援CouchApps

4)Futon(提供了不同的管理界面)

5)文檔ID

6)資料庫的概念(這裡隻有桶Bucket)

7)在CouchDB資料庫和CouchBase Server之間做複制

8)明确的附件(你必須存儲另外的檔案作為新鍵值對)

9)CouchBase中的一切操作都使用了HTTP API,這與CouchDB不同(你需要使用CouchBase Server的SDK或其它實驗性的用戶端庫,無需curl和wget使用經驗)

10)CouchDB API(CouchBase使用了Memcached的API來代替)

11)在CouchBase中,不能通過浏覽器完成所有工作,而在CouchDB中則可以(使用CouchBase必須寫伺服器端的應用。)

12)使用CouchBase,開發兩層架構的Web應用是不可能的,而使用CouchDB則可以(使用CouchBase必須寫伺服器端的應用來适配浏覽器和資料庫,就像關系資料庫那樣。)

繼續閱讀