CouchDB和Couchbase之间的区别

CouchDB和Couchbase之间有什么本质区别,这使得其中一个或另一个更适合使用?


我们更详细地写下了CouchDB和Couchbase之间的关系。 简而言之,Couchbase服务器充分利用了CouchDB的耐嚼NoSQL优势,并为其提供了memcache结霜的清晰硬边缘。

如果您是NoSQL的新手,基本上,您将您的JSON存储在Couchbase中。 它速度非常快,可以扩大到您可能会看到的很大的交通负载。

就像关系数据库一样,它会在需要时将您所存储的内容还给您。 耶数据库!

与关系数据库不同的是,您不必事先指定要存储的内容,而只需将其存储(如果您使用的是memcached,则我们是一个嵌入式升级),稍后我们将帮助您将其解决。


我认为CouchDB和Couchbase Server之间有一些本质区别需要指出。

我不会写关于从CouchDB切换到Couchbase服务器的好处,因为这些描述几乎到处都有描述(请参阅由Damien Katz或Couchbase提供的CouchDB的未来与由Couchbase提供的Apache CouchDB的未来)。 相反,我将尝试枚举CouchDB服务器中找不到的功能

所有与CouchDB和Couchbase相关的名称都可能会让人感到困惑,因此我已经更新了这个答案,首先对最重要的答案进行简要说明。

名称和困惑

有CouchDB,CouchIO,CouchOne,Couchbase,Couchbase服务器,Couchbase Mobile,Couchbase Lite,CouchApps,BigCouch,Touchbase,Membase,Memcached,MemcacheDB ......都是不同的,但相关的方式从名字上看并不明显。

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

一家名为CouchIO的公司成立于Apache CouchDB上,后来改名为CouchOne(按“名称”的意思是公司名称 - 而不是数据库名称)。

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

今天我想大多数人都认为Couchbase Server是CouchDB的新版本,但实际上它是Membase的新版本。 它仍然使用Memcached协议,而不是CouchDB的RESTful API。 同时,CouchDB仍然是CouchDB,作为Apache项目进行了积极维护和增强。

现在到相关的区别:

许可

Couchbase服务器不完全是开源/免费软件。 有两个版本:Community Edition(免费但没有最新的错误修复)和Enterprise Edition(对使用情况,保密条款和Couchbase Inc.的审核有限制,“将在被许可方的设施的正常工作时间进行”和其他典型条款到许多人认为不可接受的专有软件)。

CouchDB是The Apache Software Foundation的开源/免费软件(无附加字符串)项目,在Apache许可证2.0版(DFSG兼容,FSF认可,OSI认可,GPL兼容,非copyleft ,商业友好)。

哲学

我从来没有看到它直接指出,但这可能实际上是这两个数据库之间最重要的区别,因为它深深地涉及分布式计算模型的基础理念,而不仅仅涉及某些功能,API或许可。 CouchDB和Couchbase服务器在构建分布式系统和数据库的理念上完全不同。

根据CAP定理,分布式数据库不可能同时提供一致性,可用性和分区容差。

CouchDB是一个AP类型系统(提供可用性分区容限 )。

Couchbase服务器CP类型系统(根据维基百科)或CA类型系统(根据Couchbase技术更新) - 哪些是正确的? 请给出意见。

特征

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

  • 没有RESTful API(仅适用于视图,不适用于CRUD操作)
  • 没有_changes饲料
  • 没有对等复制
  • 没有CouchApps
  • 没有蒲团(有一个不同的管理界面可用)
  • 没有文件ID
  • 没有数据库的概念(只有桶)
  • 在CouchDB数据库和Couchbase服务器之间没有复制
  • 没有明确的附件(您必须将其他文件存储为新的键/值对)
  • 没有任何HTTP API(您需要使用Couchbase服务器SDK或Couchbase上的其中一个实验客户端库进行开发,因此无需使用curl和wget进行实验)
  • 没有CouchDB API(它使用Memcached API代替)
  • 你不能从浏览器做所有事情(你必须编写一个服务器端应用程序)
  • 没有用于Web应用程序的两层架构是可能的(您必须编写一个服务器端应用程序来放置在浏览器和数据库之间,就像关系数据库一样)
  • 没有最终的一致性
  • 不完全是开源/免费软件
  • 不是CouchDB的替代品(看起来像是替代Memcached)
  • CouchDB的这些特性对你来说可能重要,也可能不重要,所以缺乏这些特性是否是一个缺点是非常主观的,但我认为是否从CouchDB切换到Couchbase Server应该基于这些差异和您对当前CouchDB部署中的这些功能的依赖。

    例如,如果您在观看CouchDB变更提要NodeCamp对话由Mikeal Rogers或J. Chris Anderson提供的一个非常棒的CouchApp教程之后对CouchDB感兴趣,那么您必须认识到,如果您想切换到Couchbase服务器,那么您将不得不忘记他们所谈论的几乎所有事情。

    因此,我会说Couchbase服务器看起来像是Memcached和Membase的发展(不是CouchDB的发展),因此,如果您正在使用Memchached或Membase,它看起来像是一个很棒的产品。 如果您以最基本的方式使用CouchDB,那么您可以考虑使用Couchbase服务器来做同样的事情,它可能会或可能不会更好地执行(如果您不介意许可证限制)。 但是,如果您实际使用的是CouchDB中独一无二的功能(如更改提要,CouchApps,双层体系结构,对等复制等),那么您可以忘记这些功能或保留在CouchDB中。 无论如何,在考虑切换之前,请务必阅读并理解CouchDB用户迁移到Couchbase用户教程。

    人们经常会得到错误的印象(可能在阅读了“CouchDB的未来是什么?它是Couchbase”之类的东西之后),CouchDB在某种程度上被Couchbase服务器所淘汰,或者它是旧版的Couchbase。 与此同时,CouchDB是一个积极维护的开源项目,Couchbase服务器是一个完全独立的项目(它是一个较新的项目,但它不是CouchDB的新版本 - 它们甚至不兼容),因为甚至用于创建CouchApps的新工具仍然保留正在开发(例如参见Kanso项目),那么CouchDB将不会很快进行。

    我希望它能澄清这种混乱。 如果我在这里有任何错误,请纠正我。

    更新:

    Couchbase服务器实际上是Membase服务器的新名称(Membase服务器在1.8版本左右的时候被重新命名为Couchbase服务器)。 查看Couchbase 2011年度回顾:

    不幸的是,我们对许多潜在用户感到困惑。 除Membase Server和我们的新移动产品外,我们还提供了Couchbase Single Server,它是Apache CouchDB的一个“分发包”。 最重要的是,我们开始发布Couchbase Server 2.0的开发人员预览,Couchbase Server 2.0将CouchDB技术并入Membase Server - 但此产品与Couchbase Single Server(或CouchDB)不兼容。 Membase Server将在1月份的下一个版本中重新命名为Couchbase Server 1.8--这只是简单地缓解了“名称”混淆的一小步。 正如从一开始就计划的那样,Couchbase Server 2.0版本(目前在Developer Preview 3中)将增加索引和查询功能。 尽管Couchbase Server 2.0将包含CouchDB项目中的大量技术, 但它不会与CouchDB向上兼容,并且不应将其视为“CouchDB版本”。 [着重点]

    也可以看看:

  • Damien Katz对“CouchDB的未来”的评论(2012年删除 - 可在Web Archive中找到)
  • 评论“为什么Couchbase?” 由Damien Katz撰写(2012年删除 - 可在Web Archive中获得)
  • Couchbase 2011年回顾
  • Membase服务器现在是Couchbase服务器
  • Couchbase技术更新
  • Cloudant和CouchOne的区别

  • 他们是不同的但类似的软件。 我已将来自顶级答案的内容重新混合成一幅可能有助于澄清“差异”以及常见事物的图片:

    上面链接的另一个答案是对这张图片的扩展描述

    链接地址: http://www.djcxy.com/p/26867.html

    上一篇: Difference between CouchDB and Couchbase

    下一篇: What is Domain Driven Design?