出版時(shí)間:2012-5 出版社:人民郵電出版 作者:[日]佐佐木達(dá)也 頁(yè)數(shù):199 字?jǐn)?shù):308000 譯者:羅 勇
Tag標(biāo)簽:無(wú)
前言
前言 最近,到處都能聽(tīng)到“NoSQL”,這個(gè)詞到底是什么意思呢?“NoSQL”到底能給我們帶來(lái)什么好處呢?現(xiàn)在,提起數(shù)據(jù)存儲(chǔ),一般都是針對(duì)關(guān)系型數(shù)據(jù)庫(kù)來(lái)說(shuō)的。但是,關(guān)系型數(shù)據(jù)庫(kù)并不是萬(wàn)能的,它對(duì)于某些處理依然是很吃力的。本書(shū)所講述的NoSQL數(shù)據(jù)庫(kù)就是為了彌補(bǔ)關(guān)系型數(shù)據(jù)庫(kù)的不足應(yīng)運(yùn)而生的。在適當(dāng)?shù)那闆r下使用NoSQL數(shù)據(jù)庫(kù),可以為關(guān)系型數(shù)據(jù)庫(kù)需要耗費(fèi)大量時(shí)間才能完成的處理,提供高速、合理的解決方案?! ☆A(yù)想的適用情況NoSQL數(shù)據(jù)庫(kù)可用于: 取代關(guān)系型數(shù)據(jù)庫(kù)的弱勢(shì)處理(比如大量數(shù)據(jù)的寫(xiě)入處理等) 作為關(guān)系型數(shù)據(jù)庫(kù)之外的另一種選擇NoSQL數(shù)據(jù)庫(kù)雖然可以替關(guān)系型數(shù)據(jù)庫(kù)分擔(dān)一些難題(如大量數(shù)據(jù)的寫(xiě)入等),但這其中的操作具有相當(dāng)?shù)碾y度。因此本書(shū)僅僅將NoSQL定位為“關(guān)系型數(shù)據(jù)庫(kù)之外的另一種選擇”。 讀者對(duì)象 本書(shū)面向的讀者群為有1年關(guān)系型數(shù)據(jù)庫(kù)開(kāi)發(fā)經(jīng)驗(yàn)的軟件工程師和程序員。因?yàn)樗麄儗?duì)數(shù)據(jù)量的增大給關(guān)系型數(shù)據(jù)庫(kù)的檢索和更新處理帶來(lái)的劇烈性能惡化有切身感受,也能更深刻地理解NoSQL數(shù)據(jù)庫(kù)的優(yōu)勢(shì)。 本書(shū)將為讀者介紹NoSQL數(shù)據(jù)庫(kù)以及使用NoSQL數(shù)據(jù)庫(kù)所帶來(lái)的便利?! ”緯?shū)內(nèi)容 本書(shū)共由5章內(nèi)容組成,下面對(duì)各章內(nèi)容做一個(gè)簡(jiǎn)單的介紹?! 〉?章首先介紹什么是NoSQL以及這個(gè)詞的來(lái)源。之后,會(huì)介紹關(guān)系型數(shù)據(jù)庫(kù)的發(fā)展歷史、關(guān)系型數(shù)據(jù)庫(kù)的優(yōu)勢(shì)和不足,以及NoSQL數(shù)據(jù)庫(kù)誕生的背景,以便使讀者了解NoSQL數(shù)據(jù)庫(kù)的發(fā)展歷史。這一章亦會(huì)對(duì)NoSQL數(shù)據(jù)庫(kù)的種類和特征做簡(jiǎn)單講解。同時(shí)闡述“怎么樣才能更好地區(qū)別使用關(guān)系型數(shù)據(jù)庫(kù)和NoSQL數(shù)據(jù)庫(kù)”,為NoSQL數(shù)據(jù)庫(kù)的引入奠定基礎(chǔ)?! 〉?章將會(huì)講述memcached、Tokyo Tyrant、Redis和MongoDB這4種NoSQL數(shù)據(jù)庫(kù),介紹這些NoSQL數(shù)據(jù)庫(kù)各自的使用背景、特征和用例,以及它們的實(shí)際應(yīng)用。通過(guò)本章的介紹,讀者能夠了解NoSQL數(shù)據(jù)庫(kù)的基本使用方法?! 〉?章對(duì)上述4種NoSQL數(shù)據(jù)庫(kù)的應(yīng)用實(shí)例以及實(shí)現(xiàn)代碼進(jìn)行具體的介紹。這一章將使大家對(duì)這4種NoSQL數(shù)據(jù)庫(kù)能解決的具體、實(shí)際的問(wèn)題有所了解,讓NoSQL數(shù)據(jù)庫(kù)成為解決問(wèn)題的選擇之一。雖然本章涉及的各個(gè)實(shí)例都可以用關(guān)系型數(shù)據(jù)庫(kù)來(lái)實(shí)現(xiàn),但是使用NoSQL數(shù)據(jù)庫(kù)能夠獲得更快的響應(yīng),同時(shí)簡(jiǎn)單的操作也給使用者帶來(lái)更大的便利?! 〉?章對(duì)上述4種NoSQL數(shù)據(jù)庫(kù)的性能進(jìn)行比較。本章不僅會(huì)進(jìn)行與基本CRUD處理(創(chuàng)建、檢索、更新、刪除)相關(guān)的性能比較,而且還會(huì)著眼于一些具體實(shí)例,例如像Tokyo Tyrant的addint方法和incr方法的性能比較,Redis的list類型的插入和刪除的性能比較,以及MySQL的join和MongoDB的embed的性能比較等?! 〉?章對(duì)NoSQL數(shù)據(jù)庫(kù)在實(shí)際應(yīng)用中的問(wèn)題點(diǎn),以及HandlerSocket解決方案進(jìn)行介紹。它雖然和NoSQL數(shù)據(jù)庫(kù)略有一點(diǎn)不同,卻是個(gè)非常有意思的解決方案,有利于讀者們開(kāi)闊視野。
內(nèi)容概要
《NoSQL數(shù)據(jù)庫(kù)入門(mén)》詳細(xì)地介紹了NoSQL數(shù)據(jù)庫(kù)(非關(guān)系型數(shù)據(jù)庫(kù))的種類、用途以及使用方法,并對(duì)memcached、TokyoTyrant、Redis、MongoDB這4種代表性的NoSQL數(shù)據(jù)庫(kù)的特征、適用范圍、實(shí)現(xiàn)代碼進(jìn)行了深入探討,并比較了它們的性能。
《NoSQL數(shù)據(jù)庫(kù)入門(mén)》適合有關(guān)系型數(shù)據(jù)庫(kù)開(kāi)發(fā)經(jīng)驗(yàn)的軟件工程師和程序員閱讀。
作者簡(jiǎn)介
James Turnbull 開(kāi)源擁躉,Linux Australia前任主席,經(jīng)常在OSCON、Open Source Bridge、
DevOpsDays等大會(huì)上發(fā)言?,F(xiàn)任職于Puppet Labs。目前已有5本著作,均涉及開(kāi)源軟件。James
是澳大利亞人,目前居住在美國(guó)奧勒岡州的波特蘭。他的興趣愛(ài)好十分廣泛,包括烹飪、品酒、
政治理論、新聞攝影以及哲學(xué),最近還加入了波特蘭Timbers協(xié)會(huì)足球隊(duì)。
Jeffrey McCune Puppet社區(qū)成員,開(kāi)源軟件的支持者,經(jīng)常在蘋(píng)果的世界開(kāi)發(fā)者大會(huì)、Macworld、Open Source Bridge、Velocity等大會(huì)上發(fā)言?,F(xiàn)任職于Puppet Labs,致力于編寫(xiě)代碼和幫助客戶改進(jìn)他們的Puppet部署。Jeff目前居住在奧勒岡州的波特蘭,喜愛(ài)鉆研微控制器、動(dòng)畫(huà)、攝影、音樂(lè),愛(ài)好徒步旅行以及沙灘長(zhǎng)途步行。
書(shū)籍目錄
第1章 NoSQL數(shù)據(jù)庫(kù)的基礎(chǔ)知識(shí) 1
1.1 關(guān)系型數(shù)據(jù)庫(kù)和NoSQL數(shù)據(jù)庫(kù) 2
1.1.1 什么是NoSQL 2
1.1.2 關(guān)系型數(shù)據(jù)庫(kù)簡(jiǎn)史 2
1.1.3 數(shù)據(jù)庫(kù)的分類 3
1.1.4 關(guān)系型數(shù)據(jù)庫(kù)的優(yōu)勢(shì) 5
1.1.5 關(guān)系型數(shù)據(jù)庫(kù)的不足 5
1.1.6 NoSQL數(shù)據(jù)庫(kù) 9
1.2 NoSQL數(shù)據(jù)庫(kù)是什么 12
1.2.1 鍵值存儲(chǔ) 13
1.2.2 面向文檔的數(shù)據(jù)庫(kù) 14
1.2.3 面向列的數(shù)據(jù)庫(kù) 14
1.3 如何導(dǎo)入NoSQL數(shù)據(jù)庫(kù) 16
1.3.1 始終只是其中一種選擇 16
1.3.2 在何種程度上信賴它? 18
第2章 數(shù)據(jù)庫(kù)的種類和特征 19
2.1 memcached(臨時(shí)性鍵值存儲(chǔ)) 20
2.1.1 什么是memcached 20
2.1.2 為什么要使用memcached 20
2.1.3 特征和用例 21
2.1.4 安裝步驟 27
2.1.5 動(dòng)作確認(rèn) 29
2.1.6 各種開(kāi)發(fā)語(yǔ)言需要用到的程序庫(kù) 36
2.1.7 相關(guān)工具 37
2.2 Tokyo Tyrant(永久性鍵值存儲(chǔ)) 44
2.2.1 什么是Tokyo Tyrant 44
2.2.2 為什么要使用Tokyo Tyrant 44
2.2.3 特征和用例 44
2.2.4 安裝步驟 48
2.2.5 動(dòng)作確認(rèn) 50
2.2.6 各種開(kāi)發(fā)語(yǔ)言需要用到的程序庫(kù) 58
2.2.7 相關(guān)工具 58
2.3 Redis(臨時(shí)性/持久性鍵值存儲(chǔ)) 61
2.3.1 什么是Redis 61
2.3.2 為什么要使用Redis 61
2.3.3 特征和用例 67
2.3.4 安裝步驟 71
2.3.5 動(dòng)作確認(rèn) 72
2.3.6 各種開(kāi)發(fā)語(yǔ)言需要用到的程序庫(kù) 81
2.4 MongoDB(面向文檔的數(shù)據(jù)庫(kù)) 82
2.4.1 什么是MongoDB 82
2.4.2 為什么要使用MongoDB 82
2.4.3 特征和用例 84
2.4.4 安裝步驟 87
2.4.5 動(dòng)作確認(rèn) 88
2.4.6 各種開(kāi)發(fā)語(yǔ)言需要用到的程序庫(kù) 100
2.4.7 相關(guān)工具 100
第3章 試用NoSQL數(shù)據(jù)庫(kù) 103
3.1 memcached的具體使用實(shí)例 104
3.1.1 例① 關(guān)系型數(shù)據(jù)庫(kù)的緩存 104
3.1.2 例② 音樂(lè)視聽(tīng)排行網(wǎng)站 112
3.1.3 例③ 外部API的緩存 119
3.2 Tokyo Tyrant的具體使用實(shí)例 120
3.2.1 例① 在每個(gè)頁(yè)面顯示訪問(wèn)量 120
3.3 Redis的具體應(yīng)用實(shí)例 130
3.3.1 例① 時(shí)間線(Time Line)形式的Web應(yīng)用 130
3.3.2 例② 查詢歷史記錄 144
3.4 MongoDB的具體使用實(shí)例 151
3.4.1 例① 問(wèn)卷調(diào)查數(shù)據(jù)的保存 151
3.4.2 例② 解析數(shù)據(jù)的存儲(chǔ) 165
第4章 性能驗(yàn)證 167
4.1 基本的插入和查詢處理的性能 168
4.1.1 假定案例 168
4.1.2 準(zhǔn)備工作 171
4.1.3 插入處理的性能 172
4.1.4 查詢的性能 172
4.2 不同實(shí)例的性能比較 175
4.2.1 Tokyo Tyrant的addint方法和incr方法 175
4.2.2 對(duì)Redis的列表類型的數(shù)據(jù)進(jìn)行添加和刪除 177
4.2.3 MySQL的JOIN和MongoDB的embed 178
第5章 NoSQL化的關(guān)系型數(shù)據(jù)庫(kù) 183
5.1 關(guān)于NoSQL數(shù)據(jù)庫(kù) 184
5.1.1 各種NoSQL數(shù)據(jù)庫(kù)的特征 184
5.1.2 運(yùn)行時(shí)的開(kāi)銷以及經(jīng)驗(yàn)不足的問(wèn)題 185
5.1.3 將MySQL數(shù)據(jù)庫(kù)NoSQL化的方法 185
5.2 嘗試使用HandlerSocket 187
5.2.1 特征 187
5.2.2 為MySQL安裝HandlerSocket 188
5.2.3 動(dòng)作確認(rèn) 191
5.2.4 HandlerSocket的性能 197
章節(jié)摘錄
版權(quán)頁(yè): 插圖: 讓我來(lái)看另外一個(gè)例子,嘗試把MongoDB作為解析數(shù)據(jù)的存儲(chǔ)器,也就是把日志數(shù)據(jù)進(jìn)行解析,然后使用MongoDB來(lái)保存解析結(jié)果。為了檢查服務(wù)的使用情況,提供更好的服務(wù),可以通過(guò)解析日志數(shù)據(jù),獲取PV①和UU②,以及其他各類數(shù)據(jù),這些數(shù)據(jù)應(yīng)該如何保存呢? 使用關(guān)系型數(shù)據(jù)庫(kù) 當(dāng)然使用關(guān)系型數(shù)據(jù)庫(kù)來(lái)管理這些數(shù)據(jù)也不是不可以,但是,對(duì)于分析日志數(shù)據(jù)來(lái)說(shuō),我們并不清楚哪些字段是必須的??赡苡行?shù)據(jù)剛開(kāi)始并不是必須的,但在進(jìn)行某些分析時(shí)就變成必須的了。因此,可以考慮在創(chuàng)建解析用表時(shí)把所有解析數(shù)據(jù)都保存起來(lái),在必要的時(shí)候添加一列,或者把每條解析數(shù)據(jù)保存到單獨(dú)的表中。 如果把解析數(shù)據(jù)全都保存在同一個(gè)表中,每添加一列需要花費(fèi)很多工夫,而且我們還要考慮到,只有在某些特定分析中才用得到的字段會(huì)越來(lái)越多。如果把每條解析數(shù)據(jù)都保存到單獨(dú)的表中,表的數(shù)量就會(huì)在短時(shí)間內(nèi)驟然增加,也很讓人頭疼。 使用MongoDB 這種情況下嘗試MongoDB不失為明智之選。解析日志數(shù)據(jù)的時(shí)候會(huì)得到各種各樣的數(shù)據(jù),若使用MongoDB便可以不用考慮表結(jié)構(gòu)的問(wèn)題,直接把所有數(shù)據(jù)都保存下來(lái)即可。需要添加新數(shù)據(jù)的時(shí)候,也無(wú)需變更表結(jié)構(gòu),直接就能進(jìn)行添加,這就是使用MongoDB的好處。對(duì)于那些以后可能會(huì)用到的臨時(shí)數(shù)據(jù),保存起來(lái)也很簡(jiǎn)單。
編輯推薦
1、了解當(dāng)今最炙手可熱的NoSQL新型數(shù)據(jù)庫(kù)技術(shù);2、介紹memcached、Tokyo Tyrant、Redis、MongoDB這四種代表性的NoSQL數(shù)據(jù)庫(kù)
圖書(shū)封面
圖書(shū)標(biāo)簽Tags
無(wú)
評(píng)論、評(píng)分、閱讀與下載
NoSQL數(shù)據(jù)庫(kù)入門(mén) PDF格式下載
250萬(wàn)本中文圖書(shū)簡(jiǎn)介、評(píng)論、評(píng)分,PDF格式免費(fèi)下載。 第一圖書(shū)網(wǎng) 手機(jī)版