CouchDB是用Erlang開發(fā)的面向文檔的數(shù)據(jù)庫系統(tǒng),最近剛剛發(fā)布了0.7版本,這也是第一次公開發(fā)布的版本。CouchDB不是一個傳統(tǒng)的關(guān)系數(shù)據(jù)庫,而是面向文檔的數(shù)據(jù)庫,其數(shù)據(jù)存儲方式有點類似lucene的index文件格式,CouchDB最大的意義在于它是一個面向web應(yīng)用的新一代存儲系統(tǒng),事實上,CouchDB的口號就是:下一代的Web應(yīng)用存儲系統(tǒng)。
CouchDB的特點:
1、CouchDB是分布式的數(shù)據(jù)庫,他可以把存儲系統(tǒng)分布到n臺物理的節(jié)點上面,并且很好的協(xié)調(diào)和同步節(jié)點之間的數(shù)據(jù)讀寫一致性。這當(dāng)然也得以于Erlang無與倫比的并發(fā)特性才能做到。對于基于web的大規(guī)模應(yīng)用文檔應(yīng)用,然的分布式可以讓它不必像傳統(tǒng)的關(guān)系數(shù)據(jù)庫那樣分庫拆表,在應(yīng)用代碼層進行大量的改動。
2、CouchDB是面向文檔的數(shù)據(jù)庫,存儲半結(jié)構(gòu)化的數(shù)據(jù),比較類似lucene的index結(jié)構(gòu),特別適合存儲文檔,因此很適合CMS,電話本,地址本等應(yīng)用,在這些應(yīng)用場合,文檔數(shù)據(jù)庫要比關(guān)系數(shù)據(jù)庫更加方便,性能更好。
3、CouchDB支持REST API,可以讓用戶使用JavaScript來操作CouchDB數(shù)據(jù)庫,也可以用JavaScript編寫查詢語句,我們可以想像一下,用AJAX技術(shù)結(jié)合CouchDB開發(fā)出來的CMS系統(tǒng)會是多么的簡單和方便
其實CouchDB只是Erlang應(yīng)用的冰山一角,在最近幾年,基于Erlang的應(yīng)用也得到的蓬勃的發(fā)展,特別是在基于web的大規(guī)模,分布式應(yīng)用領(lǐng)域,幾乎都是Erlang的優(yōu)勢項目。
CouchDB是一個"面向文檔"的數(shù)據(jù)庫,采用 ErLang 語言開發(fā),文檔的格式是一個JSON字符串(也可包含二進制附件)。底層結(jié)構(gòu)是由一個"存儲"(storeage) ,以及多個"視圖索引"(view indexs)。 "儲存"用來儲存文件, "視圖索引"用于查詢處理。
CouchDB落實到最底層的數(shù)據(jù)結(jié)構(gòu)就是兩類B+Tree 。
CouchDB 能夠適應(yīng)非常廣泛的應(yīng)用場景,在某些偶爾連接網(wǎng)絡(luò)的應(yīng)用中,我們可以用CouchDB暫存數(shù)據(jù),隨后進行同步。也可以在Cloud環(huán)境中,作為大型的分布式的數(shù)據(jù)存儲。CouchDB提供了基于 HTTP的API的訪問方式,這樣,保證了所有的常見的語言都可以使用CouchDB。
Apache CouchDB下載地址:http://couchdb.apache.org/downloads.html
