CouchDB是一种NoSQL,通过json存储数据,只保证最终一致性。
CouchDB核心是B-Tree存储引擎。
支持Map/Reduce
数据库操作完全走HTTP协议
本地一致性:
采用MVCC(多版本并发控制)来管理数据库的并发请求。一个读请求,总是会看到最近的数据库快照。
分布式一致性:
通过增量复制,一个在各个服务器之间周期性地复制文档变化地过程,来实现最终一致性。
如果两个数据库改变了同一个文档,并想要同步,CouchDB地复制系统可以自动冲突检测和解决。保存文档历史中最近被保存地那个。如果你需要老版本可以转换成老版本,或者手动把两个版本手动合并,存储成最新结果。
都是通过RESTful接口调用
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进行查询。
github: cloudant/mango
通过Java进行查询。