Chinaunix首页 | 论坛 | 博客
  • 博客访问: 4130136
  • 博文数量: 626
  • 博客积分: 10
  • 博客等级: 民兵
  • 技术积分: 11080
  • 用 户 组: 普通用户
  • 注册时间: 2012-08-23 13:08
文章分类

全部博文(626)

文章存档

2015年(72)

2014年(48)

2013年(506)

分类: NOSQL

2014-01-11 13:38:29

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

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

阅读(4645) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~