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功能列表:
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版本”。 [着重点]
也可以看看:
他们是不同的但类似的软件。 我已将来自顶级答案的内容重新混合成一幅可能有助于澄清“差异”以及常见事物的图片:
链接地址: http://www.djcxy.com/p/26867.html