天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

初窺NoSQL世界 開源CouchDB新手入門

  NoSQL現(xiàn)在已經(jīng)變成在IT界中十分熱門的話題了,在本文中,將為你介紹NoSQL中的一員CouchDB的基本知識(shí),帶你開始走入NoSQL豐富多彩的世界。

初窺NoSQL世界 <a href=/yuedu/kaiyuan/ target=_blank class=infotextkey>開源</a>CouchDB新手入門

  什么是NoSQL

  NoSQL(是not only SQL的縮寫,也有說法認(rèn)為是non-relational,即非關(guān)系型數(shù)據(jù)庫(kù))其實(shí)是不使用傳統(tǒng)的關(guān)系數(shù)據(jù)庫(kù)模型,而是使用如key-value存儲(chǔ)、文檔型的、列存儲(chǔ)、圖型數(shù)據(jù)庫(kù)、xml等方式存儲(chǔ)數(shù)據(jù)的模型統(tǒng)稱。之所以不使用傳統(tǒng)的范式,主要是在于它們存儲(chǔ)數(shù)據(jù)的方式發(fā)生了變化。例如,當(dāng)你需要存儲(chǔ)發(fā)票的數(shù)據(jù)時(shí),在傳統(tǒng)的關(guān)系數(shù)據(jù)模型中,需要設(shè)計(jì)表的結(jié)構(gòu),然后使用服務(wù)器端語言將其轉(zhuǎn)化為實(shí)體對(duì)象,再傳遞到用戶端(這就是所謂的ORM對(duì)象關(guān)系映射),而在NoSQL中,你只要保存發(fā)票數(shù)據(jù)就可以了。 NoSQL不需要預(yù)先設(shè)計(jì)表和結(jié)構(gòu)就可以儲(chǔ)存新的數(shù)值。當(dāng)然,請(qǐng)記住,NoSQL不是銀彈。如果你的項(xiàng)目中要保存的數(shù)據(jù)的確需要關(guān)系型數(shù)據(jù)庫(kù)模型才能完成,那么應(yīng)該堅(jiān)持使用關(guān)系型數(shù)據(jù)庫(kù)。

  NoSQL的特點(diǎn)

  NoSQL的出現(xiàn)主要是為了解決數(shù)據(jù)庫(kù)讀寫性能的問題,隨著越來越龐大的Web應(yīng)用系統(tǒng)的出現(xiàn),如SNS,微博等應(yīng)用需要大量對(duì)數(shù)據(jù)進(jìn)行讀和寫,并且要求進(jìn)行分布式的部署,而傳統(tǒng)的關(guān)系數(shù)據(jù)模型在大數(shù)據(jù)訪問量和分布式環(huán)境下,由于關(guān)系模型中經(jīng)常要對(duì)多表進(jìn)行連接操作,因此性能有時(shí)會(huì)有所降低,所以NoSQL的強(qiáng)調(diào)的是非關(guān)系型數(shù)據(jù),NoSQL 數(shù)據(jù)存儲(chǔ)不需要固定的表結(jié)構(gòu),通常也不存在連接 操作。在大數(shù)據(jù)存取上具備關(guān)系型數(shù)據(jù)庫(kù)無法比擬的性能優(yōu)勢(shì)。

  在http://nosql-database.org/中,對(duì)NoSQL的描述是:非關(guān)系的,分布式的,開源的而且可以垂直擴(kuò)展的。并且大多數(shù)NoSQL數(shù)據(jù)庫(kù)具有以下特點(diǎn):Schema-free,方便的支持?jǐn)?shù)據(jù)冗余,簡(jiǎn)單的API,基于最終一致性(eventually consistent)和BASE原則(而非ACID原則)。目前,Google 的 BigTable 與 Amazon 的 Dynamo 是非常成功的商業(yè) NoSQL 實(shí)現(xiàn)。一些開源的 NoSQL 體系,如Facebook 的 Cassandra , Apache 的 HBase ,也得到了廣泛認(rèn)同。

  CouchDB介紹

  CouchDB是Apache組織發(fā)布的一款NoSQL開源數(shù)據(jù)庫(kù)項(xiàng)目,是面向文檔類型的Nosql。它由Erlang編寫而成,使用JSON格式去保存數(shù)據(jù)。所謂文檔數(shù)據(jù)庫(kù),并不是說它只能存儲(chǔ)文本。CouchDB的字段只有三個(gè):文檔ID、文檔版本號(hào)和內(nèi)容。內(nèi)容字段可以看到是一個(gè)text類型的文本,里面可以隨意定義數(shù)據(jù),而不用關(guān)注數(shù)據(jù)類型,但數(shù)據(jù)必須以json的形式表示并存放。CouchDB以RESTful API的格式提供服務(wù),可以很方便地開發(fā)各種語言的客戶端。

  而CouchDB目前的優(yōu)勢(shì)在于:它的數(shù)據(jù)存儲(chǔ)格式是JSON,而JSON為廣大程序員所熟悉,便于學(xué)習(xí),而且CouchDB還可以移值到移動(dòng)設(shè)備上去,當(dāng)用戶不能聯(lián)網(wǎng)時(shí),可以在客戶端保存數(shù)據(jù),當(dāng)能聯(lián)網(wǎng)時(shí),可以自動(dòng)把數(shù)據(jù)同步到各個(gè)分布式結(jié)點(diǎn)上去;CouchDB還支持分布式結(jié)點(diǎn)的精確復(fù)制同步,可以在一個(gè)龐大的應(yīng)用中,隨意增加分布式的CouchDB結(jié)點(diǎn),以支持?jǐn)?shù)據(jù)的均衡。

  作為初學(xué)者,本文指導(dǎo)在Windows下安裝和初步使用CouchDB。因此本文并沒有選擇以Apache組織下的CouchDB作為介紹,因?yàn)樵摪姹镜腃ouchDB比較適合在Linux下進(jìn)行編譯安裝,步驟比較復(fù)雜,因此本文選擇了使用CouchOne

  (http://www.couchone.com/)發(fā)布的CouchDB服務(wù)器社區(qū)版本。CouchOne公司今年與同樣從事NoSQL產(chǎn)品的Membase公司合拼,推出了CouchBase產(chǎn)品(分為社區(qū)免費(fèi)版和商業(yè)版),將結(jié)合Membase、Memcached和CouchDB。并實(shí)現(xiàn)高性能緩存,彈性集群和數(shù)據(jù)庫(kù)功能等技術(shù)。而我們發(fā)現(xiàn),couchone的社區(qū)版更適合于我們初學(xué)者學(xué)習(xí)。

初窺NoSQL世界 <a href=/yuedu/kaiyuan/ target=_blank class=infotextkey>開源</a>CouchDB新手入門

  下載安裝CouchDB

  首先到http://www.couchone.com/get下載couchbase的服務(wù)器版本,選擇Couchbase Server的社區(qū)版本,如下圖:

下載安裝CouchDB

  在下載后,直接點(diǎn)安裝文件就會(huì)進(jìn)行自動(dòng)安裝。在安裝后,我們要啟動(dòng)Couchbase,啟動(dòng)方法為:

    1)到安裝目錄Couchbase/Server/bin下,雙擊erl.exe,啟動(dòng)erlang環(huán)境;

    2) 雙擊Couchbase/Server/bin下的couchdb.bat ,啟動(dòng)couchdb。

  接著,我們通過FireFox瀏覽器(注意,目前只支持FireFox等瀏覽器,最好不要用IE),訪問http://127.0.0.1:5984/_utils,就可以看到couchdb的控制臺(tái)頁(yè)面了,如下所示,為了更好看到couchdb的交互過程,我們可以同時(shí)打開Firebug,如下圖:

下載安裝CouchDB

  順便提醒一下,couchdb大量使用了jQuery插件機(jī)制,可以通過http://127.0.0.1:5984/_utils/script/jquery.couch.js看到代碼的詳細(xì)情況,有興趣的可以查閱。

  創(chuàng)建數(shù)據(jù)庫(kù)用戶

  couchdb默認(rèn)的用戶都是admin,這其實(shí)不大安全,因此我們可以先創(chuàng)建一個(gè)數(shù)據(jù)庫(kù)用戶,我們?cè)陧?yè)面的右下角會(huì)發(fā)現(xiàn)如下圖描述的有Welcome to Admin Party! Everyone is admin! Fix this的字樣,點(diǎn)Fix this,然后在彈出的窗口中,可以輸入自己要設(shè)置的用戶名和密碼,保存即可。

下載安裝CouchDB

  同時(shí),couchdb還支持使用jQuery中的$.couch.signup()方法去創(chuàng)建用戶,這樣,你就可以按照自己的需要去為couchdb去創(chuàng)建用戶了,比如增加一些字段屬性如email等,還可以設(shè)置更詳細(xì)的couchdb的權(quán)限。

  開始創(chuàng)建一個(gè)文檔數(shù)據(jù)

  下面我們開始使用couchdb的控制面板去創(chuàng)建一個(gè)文檔數(shù)據(jù),步驟如下:

  1)點(diǎn)Create Database,在彈出的窗口中輸入文檔的名稱,這里我們命名為mycouchshop,點(diǎn)確定按鈕后,可以看到在控制面板中出現(xiàn)了我們剛建立的文檔,如下圖:

開始創(chuàng)建一個(gè)文檔數(shù)據(jù)

  2)點(diǎn)mycouchshop,將打開這個(gè)文檔;

  3) 點(diǎn)New Document,這將新建一個(gè)文檔;

  4) 在打開的文檔中,點(diǎn)Add Field去增加字段,首先,id是默認(rèn)的字段,我們不需要修改它,我們?cè)黾右粋€(gè)字段的名稱name,然后在其value字段中寫入:NETtuts CouchDB Tutorial One,注意在每輸入完一個(gè)字段的值的時(shí)候,可以雙擊輸入的文本框,讓鼠標(biāo)離開文本框,以方便輸入下一個(gè)字段的值,最后點(diǎn)Save Document保存我們的輸入,系統(tǒng)會(huì)自動(dòng)增加一個(gè)rev的字段,這個(gè)是表示文檔的版本號(hào),如下圖:

開始創(chuàng)建一個(gè)文檔數(shù)據(jù)

  如何更新一個(gè)文檔

  要注意的是,couchdb只一個(gè)只允許增加數(shù)據(jù)的數(shù)據(jù)庫(kù),當(dāng)要對(duì)數(shù)據(jù)庫(kù)更新時(shí),只是向其中增加新的更新后的版本,而保留原始的版本。下面我們要對(duì)剛才新建立的文檔修改一下結(jié)構(gòu),步驟為:

  1)繼續(xù)打開mycouchsho數(shù)據(jù)庫(kù);

  2)選擇增加字段,增加一個(gè)名稱為type的字段,值設(shè)置為product;

  3) 選擇保存該文檔。

  此時(shí)留意,當(dāng)保存該文檔后,會(huì)發(fā)現(xiàn)如下圖所示,最下方couchdb會(huì)顯示出目前這個(gè)是第幾個(gè)版本:

開始創(chuàng)建一個(gè)文檔數(shù)據(jù)

  可以看到,目前的是第2個(gè)版本了,可以點(diǎn)Previous Version回到上一個(gè)版本。

  通過Curl去創(chuàng)建文檔

  在couchdb中,還可以使用支持使用curl的方式去新建一個(gè)文檔,而通過curl向couchdb創(chuàng)建文檔時(shí),couchdb是通過REST的接口進(jìn)行接收數(shù)據(jù)的。步驟如下,注意下面的方法需要在linux下運(yùn)行創(chuàng)建。

  1)首先創(chuàng)建一個(gè)json格式的文件,代碼如下,將其保存為person.json:

   "forename":    "Gavin",   
"surname": "Cooper",
"type": "person"

it知識(shí)庫(kù)初窺NoSQL世界 開源CouchDB新手入門,轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 国产精品亚洲欧美 | 日本激情网址 | 手机看片国产免费久久网 | 亚洲精品免费在线 | 60岁老年熟妇在线无码 | 日本少妇内射视频播放舔 | 欧美日本韩国一二区视频 | 久热在线这里只有精品7 | 成人在线免费观看 | 日韩大胆视频 | 诱人的秘书BD在线观看 | 久久九九日本韩国精品 | 日本精品无码久久久久APP | 伊人久久综合谁合综合久久 | 蜜臀AV人妻久久无码精品麻豆 | 成人在线不卡视频 | 亚洲在线v观看免费国 | 99精品视频在线免费观看 | 18未满不能进的福利社 | 秋葵app秋葵官网18在线观看 | 一个人免费视频在线观看 | 色欲精品久久人妻AV中文字幕 | 亚洲精品久久99蜜芽尤物TV | 99精品国产AV一区二区麻豆 | 国产精品玖玖玖影院 | 岛国大片在线播放免费 | 日本妈妈在线观看中文字幕 | 男人边吃奶边挵进去呻吟漫画 | 日韩内射美女人妻一区二区三区 | 久久久精品免费视频 | 国产国产成年在线视频区 | 高清国语自产拍在线 | 国产在线精品一区二区网站免费 | 国产av在线播放 | 亚洲欧美日韩另类精品一区二区三区 | 风流少妇BBWBBW69视频 | 好男人视频免费高清在线观看www | 被免费网站在线视频 | 日本高清免费一本视频在线观看 | 天美传媒在线完整免费观看网站 | 国产WW久久久久久久久久 |