CouchBase——CouchDB与Membase的结合
Couchbase是由CouchOne(创办人包括CouchDB的设计者)和Membase(由memcached的主要开发人员建立)两家公司在2011年初合并而来。CouchDB是面向文档的NoSQL数据库的优秀代表,对移动设备有着良好的支持。Memcached则是一款完善的分布式存取系统。两家公司的合并可谓优势互补,极可能产生1+1>2的效果,焕发出更强的活力。
Couchbase提供了构建网络和移动应用程序的数据库解决方案。该公司推出了他们合并后的首个集成产品Couchbase Server 2.0,它继承了CouchOne和Membase两家之长,是一个分布式面向文档的数据库管理系统。
Couchbase已经完成了一笔1400万美元的C轮融资,在此轮融资后公司总资本升至3000万美元。Couchbase表示,他们将利用这笔新的资金来加速NoSQL数据库技术的普及,并努力拓展公司在企业市场和国际市场的份额。
CouchDB——面向文档的NoSQL数据库
CouchDB是用Erlang开发的面向文档的数据库系统,是Apache基金会的优异开源项目。其数据存储方式有点类似lucene的index文件格式,它提供以JSON作为数据格式的REST接口来对其进行操作,并可以通过视图来操纵文档的组织和呈现。CouchDB最大的意义在于它是一个面向web应用的新一代存储系统,事实上,CouchDB的口号就是:下一代的Web应用存储系统。
与现在流行的关系数据库服务器不同,CouchDB是围绕一系列语义上自包含的文档而组织的。CouchDB中的文档是没有模式的(schema free),也就是说并不要求文档具有某种特定的结构。CouchDB的这种特性使得相对于传统的关系数据库而言,有自己的适用范围。一般来说,围绕文档来构建的应用都比较适合使用CouchDB作为其后台存储。CouchDB强调其中所存储的文档,在语义上是自包含的。这种面向文档的设计思路,更贴近很多应用的问题域的真实情况。对于这类应用,使用CouchDB的文档来进行建模,会更加自然和简单。与此同时,CouchDB也提供基于MapReduce编程模型的视图来对文档进行查询,可以提供类似于关系数据库中SQL语句的能力。CouchDB对于很多应用来说,提供了关系数据库之外的更好的选择。
CouchDB具有以下特点:
一、CouchDB是分布式的数据库,它可以把存储系统分布到n台物理的节点上面,并且很好的协调和同步节点之间的数据读写一致性。这当然也得以于Erlang非常好的并发特性才能做到。对于基于web的大规模应用文档应用,然的分布式可以让它不必像传统的关系数据库那样分库拆表,在应用代码层进行大量的改动。
二、CouchDB是面向文档的数据库,存储半结构化的数据,比较类似lucene的index结构,特别适合存储文档,因此很适合CMS,电话本,地址本等应用,在这些应用场合,文档数据库要比关系数据库更加方便,性能更好。
三、CouchDB支持REST API,可以让用户使用JavaScript来操作CouchDB数据库,也可以用JavaScript编写查询语句,我们可以想像一下,用AJAX技术结合CouchDB开发出来的CMS系统会是多么的简单和方便
其实CouchDB只是Erlang应用的冰山一角,在最近几年,基于Erlang的应用也得到的蓬勃的发展,特别是在基于web的大规模,分布式应用领域,几乎都是Erlang的优势项目。