在 NoSQL 的文檔型分支中,有兩個(gè)杰出的代表,一個(gè)當(dāng)然是被稱為下代mySQL的 MongoDB,而另一個(gè)就是CouchDB,同是文檔型存儲(chǔ),CouchDB 與MongoDB 在應(yīng)用層面上走了兩條截然不同的路線,下面推薦的一篇文文章,是一篇非常好的CouchDB教程,想了解CouchDB的話,非常值得一看:
CouchDB 特性介紹:
- CouchDB is a JSON document-oriented database written in Erlang.CouchDB是一個(gè)用Erlang 寫的文檔型數(shù)據(jù)庫(kù)。
- It is a highly concurrent database designed to be easily replicable, horizontally, across numerous devices and be fault tolerant.支持高并發(fā)訪問(wèn),支持?jǐn)?shù)據(jù)同步,高容錯(cuò)性的分布式存儲(chǔ)
- It is part of the NoSQL generation of databases.它是NoSQL 體系中的一員
- It is an open source Apache foundation project. 它是一個(gè)Apache 基金下的開(kāi)源項(xiàng)目
- It allows applications to store JSON documents via its RESTful interface. 它支持JSON 數(shù)據(jù)的存儲(chǔ),支持RESTful方式的接口。
- It makes use of map/reduce to index and query the database.他使用map/reduce 來(lái)構(gòu)建索引及進(jìn)行數(shù)據(jù)查詢操作
CouchDB的優(yōu)勢(shì):
- JSON Documents – 文檔在CouchDB中以JSON格式存儲(chǔ).
- RESTful Interface – 對(duì)CouchDB的所有操作,包括數(shù)據(jù)CRUD,數(shù)據(jù)庫(kù)管理及數(shù)據(jù)同步,都可能通過(guò)HTTP方式進(jìn)行。
- N-Master Replication – 你可以使用無(wú)限多個(gè) master 機(jī)器,這樣可能會(huì)讓你能夠構(gòu)建很有意思的數(shù)據(jù)網(wǎng)絡(luò)拓?fù)洹?/li>
- Built for Offline – CouchDB 能夠運(yùn)行在移動(dòng)設(shè)備上(Android 系統(tǒng)),他可以讓你的移動(dòng)設(shè)備在離線時(shí)存儲(chǔ)數(shù)據(jù),在接入網(wǎng)絡(luò)時(shí)再同步到云端存儲(chǔ)。
- Replication Filters – 可以在同步復(fù)制操作中加上一個(gè)過(guò)濾器,讓你有選擇性的同步數(shù)據(jù)。
CouchDB:為Internet而生:
使用CouchDB,你不僅可以把它當(dāng)作一個(gè)存儲(chǔ),更推薦的方式是完全使用它來(lái)構(gòu)建應(yīng)用程序,你可以把工作代碼直接寫在CouchDB 中,完全不需要另外的WEB Server,可以減少開(kāi)銷。這也是CouchDB將自己稱為是為Internet而生的原因。
CouchDB的數(shù)據(jù)查詢:
與其他很多存儲(chǔ)設(shè)備不同的是,CouchDB并不支持動(dòng)態(tài)查詢,相反的,它需要事先換需要查詢的條件構(gòu)建view,view通常是一個(gè)map函數(shù),在已有數(shù)據(jù)基礎(chǔ)上生成一個(gè)數(shù)據(jù)子集,在查詢這個(gè)view時(shí),如果數(shù)據(jù)有變更,會(huì)觸發(fā)map函數(shù)增量更新view的內(nèi)容并返回。這種方式也被稱作惰性索引機(jī)制。
使用教程:
文章接下來(lái)的部分還列出了一個(gè)詳細(xì)的CouchDB 使用教程:
- 安裝CouchDB
- 使用CouchDB 強(qiáng)大的 WEB 管理工具:FUTON
- CouchDB 用戶管理
- 創(chuàng)建一個(gè)數(shù)據(jù)文檔
- 更新數(shù)據(jù)文檔
- 通過(guò)CURL創(chuàng)建文檔
- 查詢所有文檔
- 創(chuàng)建一個(gè)map函數(shù)
- 運(yùn)行一個(gè)reduce函數(shù)
原文鏈接:http://goo.gl/WK7q0