NoSQL读书笔记 - CouchDB
发布时间:2020-12-13 13:50:50 所属栏目:百科 来源:网络整理
导读:Apache CouchDB ? is a database that uses JSON for documents, JavaScript for MapReduce queries,255); display:inline"> and regular HTTP for an API CouchDB - Cluster of unreliable commodity hardware database Lotus Notes的后代. 开发者来自IBM
CouchDB - Cluster of unreliable commodity hardware database Lotus Notes的后代. 开发者来自IBM所有数据以文档的方式组织,使用JSON持久化数据. Append方式修改数据,视图方式查询修改数据. 视图作为特殊的文档. 文档可以引用其他文档,但不保证有效性和一致性. 文档不可以嵌套文档. 可以带附件,拥有128位唯一标识符. 是半结构化文档. 没有schema也就无效schema迁移. 每个database具有扁平的非层次化的名字空间, 文档索引通过B树算法计算id和版本号得到. 视图以javascript函数定义,不会修改数据,sans-serif; font-size:13px">只做数据展示.因此,视图和文档都可以进行备份,sans-serif; font-size:13px">且备份间数据不会冲突. 定义视图的javascript函数叫做map和reduce,sans-serif; font-size:13px">类似于google的MapReduce. 为了效率,对数据库的写操作不会生成视图. 视图builder负责对视图进行更新. 更新数据不会有锁操作.版本冲突被当作正常场景. 并发版本数没有限制,客户端负责解决冲突. CouchDB设计之初即考虑了分布式配置. 分布式场景包括集群,离线和远程三种方式,后两种方式可以在CouchDB实例失去联接情况下进行数据操作 数据备份通过增量方式以文档为单位进行. 既可以备份整个数据库,sans-serif; font-size:13px">也可以通过javascript函数过滤方式备份部分数据库. 第二种方式可用于data sharding. CouchDB以REST形式的HTTP请求进行数据操作. 提供了不同语言的接口库. 这种方式易于集成. CouchDB保证ACID,但不是强一致性. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |