Couchbase Server 是一个开源、分布式、多模型 NoSQL、JSON 文档数据库,针对交互式应用程序进行了增强。它也被称为 Membase。它由 Couchbase, Inc. 开发,最初于 2010 年 8 月发布。
它是使用 C++、Erlang、C、Go 语言编写的。它的服务器旨在为我们提供易于扩展的键值或 JSON 文档访问,具有高持续吞吐量和低延迟。这些应用程序可以通过存储、创建、聚合、检索、操作和呈现数据来帮助为许多用户提供服务。它旨在从单台机器收集到跨越多台机器的超大规模部署。
Couchbase 的历史:
Memcached 项目的几位领导者扩展了 Couchbase,以开发具有 Memcached 的简单性、速度和可扩展性的键值存储。 NorthScale 贡献了原始的 membase 源代码,项目共同赞助商 Zynga 和 Naver Corporation 于 2010 年 6 月在 membase.org 上贡献了一个新项目。
Membase 项目创始人和 Membase, Inc. 于 2011 年 2 月 8 日宣布与 CouchOne 合并,并进行相关项目合并。合并后的公司于 2012 年 1 月更名为 Couchbase, Inc.。Couchbase 发布了 Couchbase Server 1.8。 Orbitz 于 2012 年 9 月更改其部分系统以使用 Couchbase。Couchbase Server 2.0(于 2011 年 7 月发布)于 2012 年 12 月发布。它包括一个新的 JSON 文档存储、增量 MapReduce、索引和查询以及跨数据中心的复制。
Couchbase 的特点:
- 它是一个开源的 NoSQL 数据库,它为我们提供了一种数据存储和恢复机制,该机制以不同于关系数据库中使用的表格关系的方式建模。
- 它非常有用,因为它针对交互式应用程序进行了优化。
- 它具有无模式的数据模式。
- 它有多个数据访问路径来查询和管理我们的 JSON 文档。
- 它具有灵活的数据访问路径,使其对各种应用程序和用例更有用。
- 它支持将 ANSI SQL 扩展到 JSON 的声明式查询语言 (N1QL)。
- 它提供了最终一致性和立即一致性方法来确保分布式系统中的一致性。
- 它不提供参照完整性的概念。因此,没有外键。
- 它支持 Map-Reduce 方法。
- 它具有预定义的数据类型,例如 boolean、 字符串、number 等。
- Couchbase 的主要数据库模型是文档存储。
- Couchbase 的辅助数据库模型是键值存储。
- 它支持 XML 数据格式。
- 在 Couchbase 中,分区可以通过 Sharding 来完成。
- 支持主从复制和主主复制复制方式。
- 它具有内存功能。
- 它提供了 ACID 事务概念。
- 它还支持二级索引,没有任何限制。
- 它在 JavaScript 中有用于服务器端脚本的函数和计时器。
- 它使用 Linux、OS X 和 Windows 作为其服务器操作系统。
- 它被 The Doyle Group、Lockwood Publishing、Code Weavers、MSLGROUP 等一些公司使用。