Sorry, your browser cannot access this site
This page requires browser support (enable) JavaScript
Learn more >

参考

MongoDB与CouchDB全方位对比

概念:

  • CouchDB是一种NoSQL,通过json存储数据,只保证最终一致性。

  • CouchDB核心是B-Tree存储引擎。

  • 支持Map/Reduce

  • 数据库操作完全走HTTP协议

  • 本地一致性:

    ​ 采用MVCC(多版本并发控制)来管理数据库的并发请求。一个读请求,总是会看到最近的数据库快照。

  • 分布式一致性:

    ​ 通过增量复制,一个在各个服务器之间周期性地复制文档变化地过程,来实现最终一致性。

    ​ 如果两个数据库改变了同一个文档,并想要同步,CouchDB地复制系统可以自动冲突检测和解决。保存文档历史中最近被保存地那个。如果你需要老版本可以转换成老版本,或者手动把两个版本手动合并,存储成最新结果。

原生API:

都是通过RESTful接口调用

1
2
3
curl -X GET http:127.0.0.1:5984/_all_dbs # 获取所有数据库列表
curl -X PUT http:127.0.0.1:5984/baseball # 创建数据库
curl -X DELETE http:127.0.0.1:5984/baseball # 创建数据库

查询

支持Map/Reduce: 一个Map函数和一个Reduce函数的组合在CouchDB的术语里被成为视图,之前通过futon工具定义视图,

现在CouchDB中自带的是Fauxton,Fauxton通过Mango Query进行查询。

Feature: Mango Query

github: cloudant/mango

通过Java进行查询。

评论