CouchDB 是 2005 年诞生的一个开源的 NoSQL 数据库,它是一个使用 JSON 作为数据存储格式,主要以 Javascript 作为查询语言,由 Erlang 编写面向文档的数据库系统。2008 年成为 apache 的顶级项目。https://couchdb.apache.org/
主要功能
文档存储
和其他的列式存储一样,CouchDB 数据存储主要以 JSON 格式进行,每个文档都有一个唯一的 id。
事务 ACID
CouchDB 支持事务 ACID,其通过多版本并发控制(MVCC)的形式来实现。
Map/Reduce 视图和索引
存储的数据通过视图进行组装。在 CouchDB 中,每一个视图都是由作为 map/reduce 操作中的 Map 部分的 JavaScript 函数构成。该函数接受一个文档并且将其转换为一个单独的值来返回。CouchDB 能够对视图进行索引,同时在文档新增,修改,删除的时候对这些索引进行更新。
Rest API
数据通过 Rest API 进行操作。
历史
CouchDB(Couch 是 cluster of unreliable commodity hardware 的首字母缩写),它是前 IBM 的 Lotus Notes 开发者 Damien Katz 于 2005 年创建。
- 2008 年 2 月,CouchDB 成为 Apache 的孵化项目,并在几个月之后,升级成为顶级项目。
- 2010 年 7 月,发布了第一个稳定版本。
- 2012 年初期,创始人 Damien Katz 离开了项目,并专注于 Couchbase Server。
- 2012 年 4 月发布了 1.2 版本。
- 2013 年 4 月发布了 1.3 版本。
- 2013 年 9 月发布了 1.4 版本。
- 2014 年 4 月发布了 1.5 版本。
- 2014 年 6 月发布了 1.6 版本。
- 2017 年 11 月发布了 1.7 版本。
- 2017 年 8 月发布了 2.1 版本。
- 2018 年 8 月发布了 2.2 版本。
- 2018 年 12 月发布了 2.3 版本。
- 2020 年 2 月发布了 3.0 版本。
- 2020 年 5 月发布了 3.1 版本。