- 1、本文档共34页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
CouchDB资料整理
CouchDB 简介
CouchDB 简介
类型:开源数据库,Apache 项目
存储格式:JSON
查询语言:JavaScript
API :MapReduce、HTTP
特点
MVCC (Multiversion concurrency control)
CouchDB 一个支持多版本控制的系统,此类系统通常支持多个结点写,而系统会检测到多个
系统的写操作之间的冲突并以一定的算法规则予以解决。
水平扩展性
在扩展性方面,CouchDB 使用replication 去做。CouchDB 的设计基于支持双向的复制(同
步)和离线操作。这意味着多个复制能够对同一数据有其自己的拷贝,可以进行
修改,之后将这些变更进行同步。
REST API(Representational State Transfer ,简称REST )
所有的数据都有一个唯一的通过HTTP 暴露出来的URI。REST 使用HTTP 方法 POST ,GET,
PUT 和DELETE 来操作对应的四个基本 CRUD(Create,Read,Update,Delete)
操作来操作所有的资源。
不支持动态查询
CouchDB 不支持动态查询,你必须为你的每一个查询模式建立相应的视图,并在此视图的基
础上进行查询。视图是CouchDB 中文档的呈现方式,在CouchDB 中保存的是视图的定义。
CouchDB 中有两种视图:永久视图和临时视图。
永久视图保存在设计文档的views 字段中。如果需要修改永久视图的定义,只需要通过文档
REST API 来修改设计文档即可。
临时视图是通过发送 POST 请求到 URL/dbName/_temp_view 来执行的。在POST 请求中需
要包含视图的定义。
一般来说,临时视图只在开发测试中使用,因为它是即时生成的,性能比较差; 永久视图
的运行结果可以被 CouchDB 缓存,因此一般用在生产环境中。
原子性
E-Mail: Mike_Zhang@
CouchDB 简介
支持针对行的原子性修改(concurrent modifications of single documents ),但不支持更多的
复杂事务操作。
数据可靠性
CouchDB 是一个”crash-only” 的系统,你可以在任何时候停掉 CouchDB 并能保证数据的一致
性。
最终一致性
CouchDB 保证最终一致性,使其能够同时提供可用性和分割容忍。
离线支持
CoucbDB 能够同步复制到可能会离线的终端设备(比如智能手机),同时当设置再次在线时
处理数据同步。CouchDB 内置了一个的叫做Futon 的通过web 访问的管理接口。
与SQL 语法比较
查询数据库列表
mysql
通过show 查询,示例如下:
show databases;
返回结果:
++
| Database |
++
| information_schema |
| mysql |
| test |
++
CouchDB
通过GET 请求访问URL/_all_dbs 可以获取数据库列表。
示例如下:
curl -X GET :5984/_all_dbs
E-Mail: Mike_Zhang@
CouchDB 简介
返回结果:
[_replicator,_users,db1,db2]
创建数据库
mysql
通过create 语句实现,示例如下:
create database testdb;
CouchDB
通过PUT 请求访问URL/dbName 可以创建名称为dbName 的数据库。
示例如下:
curl -X PUT :5984/testdb
返回结果:
{ok:true}
添加表
mysql
通过create 语句实现,示例如下:
create table tb1(
文档评论(0)