首页 > 数据库技术 > 详细

CouchDB

时间:2020-02-15 13:09:47      阅读:47      评论:0      收藏:0      [点我收藏+]

简介

Apache CouchDB是一个开源数据库,专注于易用性和成为"完全拥抱web的数据库"。它是一个使用JSON作为存储格式,JavaScript作为查询语言,MapReduce和HTTP作为API的面向文档的NoSQL数据库。其中一个显著的功能就是多主复制。CouchDB的第一个版本发布在2005年,在2008年成为了Apache的项目。

不同于关系型数据库,CouchDB没有将数据和关系存储在表格里。替代的,每个数据库是一个独立的文档集合。每一个文档维护其自己独立的数据和自包涵的schema。一个应用程序可能会访问多个数据库,比如其中一个位于用户的手机上,另一个位于在远程的服务器上。文档的元数据包含版本信息,让其能够合并可能因为数据库链接丢失导致的任何差异。

CouchDB实现了一个多版本并发控制(MVCC)形式,用来避免在数据库写操作的时候对文件进行加锁。冲突留给应用程序去解决。解决一个冲突的通用操作的是首先合并数据到其中一个文档,然后删除旧的数据。

其他功能包括文档级别的ACID语义和最终一致性,MapReduce,复制(Replication)。它还支持通过一个做Futon的内置web应用程序来进行数据库管理。

特点

  • 文档存储
CouchDB将数据存储为“文档”,其为用JSON表示的有一个或者多个字段/值的对。字段的值可以是简单的东西比如字符串,数字,或者时间;但是数组和字典同样也可以使用。CouchDB中的每一个文档有一个唯一的id但是没有必须的文档schema。
  • ACID语义
CouchDB提供了ACID语义,其通过多版本并发控制的形式来实现,意味着CouchDB能够处理大量的并发读写而不会产生冲突。
Map/Reduce 视图 和 索引
存储的数据通过视图进行组装。在CouchDB中,每一个视图都是由作为map/reduce操作中的Map部分的JavaScript函数构成。该函数接受一个文档并且将其转换为一个单独的值来返回。CouchDB能够对视图进行索引,同时在文档新增,修改,删除的时候对这些索引进行更新。
  • 支持复制的分布式架构
CouchDB的设计基于支持双向的复制(同步)和离线操作。这意味着多个复制能够对同一数据有其自己的拷贝,可以进行修改,之后将这些变更进行同步。
  • REST API
所有的数据都有一个唯一的通过HTTP暴露出来的URI。REST使用HTTP方法 POST,GET,PUT和DELETE来操作对应的四个基本CRUD(Create,Read,Update,Delete)操作来操作所有的资源。
  • 最终一致性
CouchDB保证最终一致性,使其能够同时提供可用性和分割容忍。
  • 离线支持
CoucbDB能够同步复制到可能会离线的终端设备(比如智能手机),同时当设置再次在线时处理数据同步。

CouchDB内置了一个的叫做Futon的通过web访问的管理接口。

安装

安装教程:http://docs.couchdb.org/en/latest/install/unix.html#installation-using-the-apache-couchdb-convenience-binary-packages

 

  • Ubuntu 18.04 (Bionic): Run the following commands:
sudo apt-get install -y apt-transport-https gnupg ca-certificates
echo "deb https://apache.bintray.com/couchdb-deb bionic main" \    | sudo tee -a /etc/apt/sources.list.d/couchdb.list
  • CentOS: Place the following text into /etc/yum.repos.d/bintray-apache-couchdb-rpm.repo:
[bintray--apache-couchdb-rpm]
name=bintray--apache-couchdb-rpm
baseurl=http://apache.bintray.com/couchdb-rpm/el$releasever/$basearch/
gpgcheck=0
repo_gpgcheck=0
enabled=1

安装

Debian/Ubuntu: First, install the CouchDB repository key:

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys \  8756C4F765C9AC3CB6B85D62379CE192D401AB61

Then update the repository cache and install the package:

sudo apt update
sudo apt install -y couchdb

RedHat/CentOS: Run the command:

sudo yum -y install epel-release && sudo yum -y install couchdb

 

 

使用

 

资料

官网:http://docs.couchdb.org

文档:http://docs.couchdb.org/en/2.3.1/whatsnew/2.3.html#version-2.3.1

CouchDB

原文:https://www.cnblogs.com/biaogejiushibiao/p/12310999.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!