Nosql CouchDB和Couchbase之间的区别

Nosql CouchDB和Couchbase之间的区别,nosql,couchdb,couchbase,Nosql,Couchdb,Couchbase,和之间有什么本质区别。我认为CouchDB和Couchbase服务器之间有一些本质区别需要指出 我不会写关于从CouchDB切换到Couchbase服务器的优点的文章,因为这些优点几乎到处都有描述(见Damien Katz或 通过Couchbase)。相反,我将尝试列举CouchDB的特性,这些特性在Couchbase服务器中找不到 所有与CouchDB和Couchbase相关的名称都可能令人困惑,因此我更新了这个答案,首先简要说明最重要的名称 名称和混淆 有CouchDB、CouchIO、Co

和之间有什么本质区别。

我认为CouchDB和Couchbase服务器之间有一些本质区别需要指出

我不会写关于从CouchDB切换到Couchbase服务器的优点的文章,因为这些优点几乎到处都有描述(见Damien Katz或 通过Couchbase)。相反,我将尝试列举CouchDB的特性,这些特性在Couchbase服务器中找不到

所有与CouchDB和Couchbase相关的名称都可能令人困惑,因此我更新了这个答案,首先简要说明最重要的名称

名称和混淆 有CouchDB、CouchIO、CouchOne、Couchbase、Couchbase服务器、Couchbase Mobile、Couchbase Lite、CouchApps、BigCoach、Touchbase、Membase、Memcached、MemcacheDB。。。所有这些都是不同的,但仅仅从名字上看,它们之间的联系并不明显

首先是CouchDB,一个由前IBM开发人员Damien Katz创建的数据库。它的正式名称在成为Apache项目后改为ApacheCouchDB

成立了一家名为CouchIO的公司来开发ApacheCouchDB,后来将其名称改为CouchOne(我所说的“其名称”是指公司名称,而不是数据库名称)

CouchOne(前身为CouchIO)与Membase(前身为NorthScale)合并,成立了一家名为Couchbase的新公司。Membase(公司)开发了Membase(同名产品)。Membase是由Memcached项目的几位领导者创建的,它使用Memcached协议。在CouchOne和Membase合并后,Couchbase继续开发Membase软件,后来更名为Couchbase Server

今天,我认为大多数人认为Couchbase服务器是CouchDB的新版本,但事实上,它是Membase的新版本。它仍然使用Memcached协议,而不是CouchDB的restfulapi。同时,CouchDB仍然是CouchDB,作为一个Apache项目进行了积极的维护和增强

现在谈谈相关差异:

许可 Couchbase服务器不完全是/。有两个版本:Community Edition(免费但没有最新的bug修复)和Enterprise Edition(对Couchbase Inc.的使用、保密规定、审计有限制,“将在被许可方设施的正常营业时间内进行”,并且是许多人可能无法接受的专有软件的典型版本)

CouCHDB是Apache软件基金会的开源/免费软件(无附带条件)项目,并在(DFSG兼容的、FSF认可的、OSI认可的、GPL兼容的、非版权的、商业友好的)下发布。 哲学 我从来没有看到过直接指出这一点,但这可能实际上是这两个数据库之间最重要的区别,因为它深刻地反映了分布式计算模型的基本原理,而不仅仅是某些特性、API或许可。CouchDB和Couchbase服务器在构建分布式系统和数据库的理念上完全不同

根据这个模型,分布式数据库不可能同时提供一致性、可用性和分区容差

CouchDB是一种AP类型的系统(提供可用性分区容差

Couchbase ServerCP类型系统(根据)或CA类型系统(根据)
以下哪一项是正确的?请发表评论。

特征 这是我发现的CouchDB服务器不支持的CouchDB功能列表:

  • 无API(仅适用于视图,不适用于CRUD操作)
  • 没有
  • 没有
  • 没有
  • 否(有不同的管理界面可用)
  • 没有
  • 没有数据库的概念(只有bucket)
  • CouchDB数据库和Couchbase服务器之间没有复制
  • 没有明确的附件(必须将其他文件存储为新的键/值对)
  • 没有适用于所有内容的HTTP API(您需要使用Couchbase Server SDK或一个实验性客户端库,因此不需要使用和进行实验)
  • 没有CouchDB API(它使用该API)
  • 您不能从浏览器完成所有操作(您必须编写服务器端应用程序)
  • Web应用不可能有两层架构(您必须编写一个服务器端应用程序,位于浏览器和数据库之间,就像关系数据库一样)
  • 没有
  • 不完全/
  • 不是CouchDB的替代品(似乎是Memcached的替代品)
CouchDB的这些功能可能对您很重要,也可能对您不重要,因此缺少这些功能是否是一个缺点完全是主观的,但我认为,是否从CouchDB切换到Couchbase服务器的决定应该基于这些差异以及您在当前CouchDB部署中对这些功能的依赖性

例如,如果你在看了Mikeal Rogers的NodeCamp talk或J.Chris Anderson的一本伟大的CouchApp教程后对CouchDB感兴趣,那么你必须意识到,如果你想切换到Couchbase服务器,那么你必须忘记他们谈论的几乎所有事情

正因为如此,我想说Couchbase服务器看起来像是Memcached和Membase的进化(而不是CouchDB的进化),因此,如果您当前正在使用Memchached或Membase,它看起来像是一个很棒的产品。如果您以最基本的方式使用CoucDB,那么您可以考虑使用CoucBASE服务器来进行相同的操作,并且它可能会或可能不会运行得更好(如果您不介意许可限制)。但是如果您实际使用的是CouchDB中唯一的任何特性(如changes提要,CouchA)