版权声明:本文为博主chszs的原创文章,未经博主允许不得转载。 https://blog.csdn.net/chszs/article/details/18137599
《CouchDB与CouchBase的比较》
作者:chszs,转载需注明。博客主页: http://blog.csdn.net/chszs一、概述
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的相同之处:
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必须写服务器端的应用来适配浏览器和数据库,就像关系数据库那样。)