CouchDB与CouchBase的比较

时间:2023-03-28 11:01:17


《CouchDB与CouchBase的比较》

作者:chszs,转载需注明。



一、概述


Apache CouchDB和CouchBase两个NoSQL数据库,都是开源、免费的NoSQL文档型数据库,都使用了JSON作为其文档格式。Apache CouchDB和CouchBase的相似性极高,但也有不少不同之处。基本上CouchBase结合了Apache CouchDB和MemBase两种数据库的功能特性而构建的。CouchDB的面向文档的数据模型、索引和查询功能与MemBase分布式键值数据模型相结合、高性能、易于扩展、始终保持接通的能力,这就是CouchBase。



CouchDB与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的相同之处:


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必须写服务器端的应用来适配浏览器和数据库,就像关系数据库那样。)