MongoDB管理與開(kāi)發(fā)精要

出版時(shí)間:2011-12-28  出版社:機(jī)械工業(yè)出版社  作者:紅丸  譯者:紅丸  
Tag標(biāo)簽:無(wú)  

內(nèi)容概要

為什么要寫(xiě)這本書(shū)
2005年我開(kāi)始從事J2EE(現(xiàn)在叫Java EE)開(kāi)發(fā),一年以后正式將精力放在數(shù)據(jù)庫(kù)領(lǐng)域,并于當(dāng)年正式成為DBA(數(shù)據(jù)庫(kù)管理員),此后一直從事數(shù)據(jù)庫(kù)的管理工作。從DB2 V8到DB2 V9,從SQL Server 2000到SQL Server 2008,從MySQL到MongoDB,6年的時(shí)間奮斗在DBA這個(gè)領(lǐng)域,至今我依然深愛(ài)著這個(gè)職業(yè)。在以往的日子里,每當(dāng)遇到疑難問(wèn)題時(shí),我總是非常耐心地去處理,并享受著解決問(wèn)題帶來(lái)的喜悅。
2010年,隨著Web 2.0網(wǎng)站的大批涌現(xiàn),NoSQL數(shù)據(jù)庫(kù)逐漸流行起來(lái)。與傳統(tǒng)的關(guān)系型數(shù)據(jù)庫(kù)相比,NoSQL數(shù)據(jù)庫(kù)具有操作簡(jiǎn)單、完全免費(fèi)、源碼公開(kāi)、隨時(shí)下載等特點(diǎn),并可以用于各種商業(yè)目的。這使NoSQL數(shù)據(jù)庫(kù)產(chǎn)品廣泛應(yīng)用于各種大型門戶網(wǎng)站和專業(yè)網(wǎng)站,大大降低了企業(yè)運(yùn)營(yíng)成本。同時(shí),NoSQL數(shù)據(jù)庫(kù)對(duì)傳統(tǒng)的關(guān)系型數(shù)據(jù)庫(kù)造成了一定的沖擊,例如,開(kāi)源數(shù)據(jù)庫(kù)代表MySQL已經(jīng)將Memcached產(chǎn)品嵌入其解決方案中,與此同時(shí),各種商業(yè)數(shù)據(jù)庫(kù)也在不斷推出列式數(shù)據(jù)處理方案來(lái)彌補(bǔ)自身的不足。由此可見(jiàn),NoSQL的良好發(fā)展態(tài)勢(shì)已經(jīng)是不可逆轉(zhuǎn)的了,它必將主宰未來(lái)的互聯(lián)網(wǎng)數(shù)據(jù)庫(kù)市場(chǎng)。MongoDB正是這些NoSQL產(chǎn)品中的杰出代表。
在這種背景下,2010年,機(jī)械工業(yè)出版社華章公司的楊福川準(zhǔn)備籌劃一本關(guān)于MongoDB實(shí)戰(zhàn)方面的書(shū),我正好樂(lè)意與大家一起分享我多年工作實(shí)踐的積累以及數(shù)據(jù)庫(kù)開(kāi)發(fā)、優(yōu)化、管理和維護(hù)經(jīng)驗(yàn),于是我們一拍即合。
此后,我開(kāi)始蟄伏在北京的某個(gè)角落,從日出東方到夕陽(yáng)西下,經(jīng)歷了不知多少個(gè)日日夜夜??催^(guò)漫天塵土的春季,浸泡在炎熱的夏季,走過(guò)落葉紛飛的秋季,不知不覺(jué)進(jìn)入了冬季。漫漫長(zhǎng)路,本書(shū)終于塵埃落定。
本書(shū)全面介紹了MongoDB數(shù)據(jù)庫(kù),重在實(shí)戰(zhàn)演練,學(xué)習(xí)思路也是我親身的學(xué)習(xí)經(jīng)歷。出于嚴(yán)謹(jǐn)?shù)目紤],本書(shū)中的例子都在測(cè)試環(huán)境上調(diào)試通過(guò)。這耗費(fèi)了我大量的時(shí)間和精力,但是,如果能夠幫助讀者以最快的速度掌握一門技術(shù),一切努力都是值得的。
讀者對(duì)象
全書(shū)內(nèi)容循序漸進(jìn)、由淺入深,既可以引導(dǎo)初學(xué)者入門,又可以幫助具備一定基礎(chǔ)的IT技術(shù)從業(yè)人員進(jìn)一步提高技術(shù)水平,力求不同層次的讀者都能從本書(shū)中受益。本書(shū)的讀者對(duì)象包括:
q 準(zhǔn)備擴(kuò)展MongoDB知識(shí)的開(kāi)發(fā)人員
q 有興趣了解MongoDB的DBA或數(shù)據(jù)庫(kù)應(yīng)用程序編程人員
q 正在學(xué)習(xí)數(shù)據(jù)庫(kù)課程的計(jì)算機(jī)相關(guān)專業(yè)的學(xué)生
q 想使用MongoDB實(shí)現(xiàn)快速查詢的技術(shù)人員
q 想進(jìn)一步了解MongoDB的“發(fā)燒友”
q 數(shù)據(jù)庫(kù)管理層和技術(shù)決策者
本書(shū)特點(diǎn)
本書(shū)針對(duì)IT技術(shù)人員在工作中的必備知識(shí)與技能,精心安排了篇章結(jié)構(gòu)。本書(shū)從基礎(chǔ)入手,通過(guò)細(xì)致入微的內(nèi)容組織,配以深入淺出的文字論述,以實(shí)際項(xiàng)目應(yīng)用為背景,力圖讓讀者從多個(gè)角度對(duì)MongoDB有深入的認(rèn)識(shí)和理解。
本書(shū)最大的特點(diǎn)是實(shí)戰(zhàn)性強(qiáng),利用豐富的實(shí)例對(duì)MongoDB進(jìn)行了詳細(xì)的介紹。
本書(shū)系統(tǒng)全面,涵蓋了MongoDB開(kāi)發(fā)、優(yōu)化、管理和維護(hù)的方方面面。從寫(xiě)作風(fēng)格上看,本書(shū)沒(méi)有過(guò)多討論抽象的理論,而是通過(guò)豐富的實(shí)例來(lái)幫助讀者理解應(yīng)用MongoDB數(shù)據(jù)庫(kù)時(shí)會(huì)遇到的各種問(wèn)題及其解決方法,使讀者能夠很輕松地部署測(cè)試環(huán)境,并且熟練地掌握MongoDB數(shù)據(jù)庫(kù)的各種使用技巧。
如何閱讀本書(shū)
本書(shū)主要以引導(dǎo)讀者思考、體會(huì)和實(shí)踐為目的,通過(guò)實(shí)例讓讀者以最快的速度全面接觸MongoDB。在閱讀本書(shū)的時(shí)候,最好有一個(gè)可以實(shí)踐的MongoDB測(cè)試環(huán)境,通過(guò)自己動(dòng)手實(shí)踐來(lái)加深認(rèn)識(shí)、真正理解。對(duì)于管理層和技術(shù)決策者來(lái)說(shuō),可能沒(méi)有太多時(shí)間進(jìn)行大量的測(cè)試和實(shí)踐,學(xué)習(xí)解決問(wèn)題的思路就可以了。
本書(shū)分為6個(gè)部分,共15章:
第一部分 基礎(chǔ)篇(第1章~第2章):主要講解MongoDB的基礎(chǔ)理論和基本操作。通過(guò)這部分內(nèi)容的學(xué)習(xí),讀者可以對(duì)MongoDB進(jìn)行簡(jiǎn)單操作。
第二部分 高級(jí)篇(第3章~第5章):主要講解MongoDB的高級(jí)技術(shù),例如高級(jí)查詢、高級(jí)更新、高級(jí)功能的應(yīng)用。通過(guò)這部分內(nèi)容的學(xué)習(xí),讀者可以熟練地應(yīng)用MongoDB來(lái)完成日常的業(yè)務(wù)需求。
第三部分 管理篇(第6章~第8章):主要講解MongoDB常用的運(yùn)行和維護(hù)管理工具,例如數(shù)據(jù)的導(dǎo)入導(dǎo)出、數(shù)據(jù)的備份和恢復(fù)、數(shù)據(jù)的克隆和復(fù)制,以及與安全相關(guān)的實(shí)用技術(shù)。通過(guò)這部分內(nèi)容的學(xué)習(xí),讀者應(yīng)該具備一個(gè)MongoDB DBA所具有的全部技能。
第四部分 性能篇(第9章~第10章):主要講解MongoDB的索引、優(yōu)化、性能監(jiān)控技術(shù)。通過(guò)這部分內(nèi)容的學(xué)習(xí),讀者可以具備MongoDB調(diào)優(yōu)的能力。
第五部分 架構(gòu)篇(第11章~第13章):主要講解MongoDB的高可用架構(gòu)的細(xì)節(jié),如主從復(fù)制、Sharding(分片)等。通過(guò)這部分內(nèi)容的學(xué)習(xí),讀者可以獨(dú)立設(shè)計(jì)MongoDB應(yīng)用系統(tǒng)架構(gòu)。
第六部分 開(kāi)發(fā)篇(第14章~第15章):主要講解如何用C#和Java來(lái)操作MongoDB數(shù)據(jù)庫(kù)。通過(guò)這部分內(nèi)容的學(xué)習(xí),讀者可以將C#或Java開(kāi)發(fā)技術(shù)與MongoDB數(shù)據(jù)庫(kù)結(jié)合起來(lái),完成特定應(yīng)用系統(tǒng)的開(kāi)發(fā)

作者簡(jiǎn)介

“紅丸”,資深數(shù)據(jù)庫(kù)專家,國(guó)內(nèi)MongoDB領(lǐng)域的先驅(qū)之一,積累了豐富的實(shí)戰(zhàn)經(jīng)驗(yàn)。精通MySQL、SQL Server和DB2等大中型數(shù)據(jù)庫(kù)的運(yùn)維和管理,還擅長(zhǎng)Java和C#等技術(shù)。此外,他對(duì)Redis和分布式計(jì)算技術(shù)也有一定的研究。活躍于ITPUB等技術(shù)社區(qū),發(fā)表和分享了大量關(guān)于MongoDB和Redis的技術(shù)文章,深受社區(qū)歡迎。

書(shū)籍目錄

前言
第一部分  基  礎(chǔ)  篇
第1章  認(rèn)識(shí)MongoDB / 2
1.1  NoSQL簡(jiǎn)介 / 2
1.1.1  產(chǎn)生背景 / 2
1.1.2  NoSQL的種類及其特性 / 4
1.1.3  NoSQL特點(diǎn) / 8
1.1.4  發(fā)展現(xiàn)狀 / 8
1.2  初識(shí)MongoDB / 9
1.2.1  特點(diǎn)及功能 / 10
1.2.2  適用場(chǎng)合 / 11
1.3  MongoDB實(shí)際應(yīng)用案例 / 12
1.3.1  國(guó)內(nèi)案例 / 12
1.3.2  國(guó)外案例 / 12
1.4  本章小結(jié) / 13
第2章  快速入門 / 14
2.1  體系結(jié)構(gòu) / 14
2.1.1  數(shù)據(jù)邏輯結(jié)構(gòu) / 14
2.1.2  數(shù)據(jù)存儲(chǔ)結(jié)構(gòu) / 15
2.1.3  日志系統(tǒng) / 17
2.1.4  元數(shù)據(jù)的存儲(chǔ) / 18
2.1.5  數(shù)據(jù)類型 / 19
2.2  MongoDB的安裝和配置 / 22
2.2.1  在Windows平臺(tái)下的安裝和配置 / 22
2.2.2  在Linux平臺(tái)下的安裝和配置 / 23
2.3  啟動(dòng)數(shù)據(jù)庫(kù) / 25
2.3.1  命令行方式 / 25
2.3.2  配置文件方式 / 25
2.3.3  Daemon方式 / 26
2.3.4  mongod參數(shù)方式 / 26
2.4  停止數(shù)據(jù)庫(kù) / 27
2.4.1  Ctrl+C組合鍵 / 27
2.4.2  shutdownServer()指令 / 28
2.4.3  UNIX系統(tǒng)指令 / 28
2.5  操作數(shù)據(jù)庫(kù) / 29
2.5.1  連接數(shù)據(jù)庫(kù) / 29
2.5.2  插入記錄 / 29
2.5.3  查詢記錄 / 31
2.5.4  修改記錄 / 34
2.5.5  刪除記錄 / 34
2.6  常用GUI管理工具 / 34
2.6.1  MongoVUE / 34
2.6.2  RockMongo / 35
2.6.3  MongoHub / 36
2.7  本章小結(jié) / 37
第二部分  高  級(jí)  篇
第3章  高級(jí)查詢 / 40
3.1  查詢操作符 / 40
3.2  查詢語(yǔ)法 / 46
3.2.1  數(shù)組內(nèi)容的查詢 / 47
3.2.2  內(nèi)嵌文檔的查詢 / 47
3.2.3  正則表達(dá)式匹配 / 48
3.2.4  $where查詢 / 48
3.3  聯(lián)合查詢 / 49
3.3.1  簡(jiǎn)單手工關(guān)聯(lián) / 49
3.3.2  DBRef方式關(guān)聯(lián) / 50
3.4  游標(biāo)和存儲(chǔ)過(guò)程 / 51
3.4.1  游標(biāo) / 51
3.4.2  存儲(chǔ)過(guò)程 / 52
3.5  本章小結(jié) / 53
第4章  高級(jí)更新 / 55
4.1  數(shù)據(jù)更新命令詳解 / 55
4.1.1  update命令 / 55
4.1.2  save命令 / 56
4.2  數(shù)據(jù)更新操作符 / 57
4.3  本章小結(jié) / 62
第5章  高級(jí)特性 / 63
5.1  Capped Collection集合 / 63
5.1.1  創(chuàng)建Capped Collection / 63
5.1.2  Capped Collection的用途 / 64
5.1.3  注意事項(xiàng) / 64
5.2  GridFS規(guī)范 / 65
5.2.1  如何實(shí)現(xiàn)海量存儲(chǔ) / 65
5.2.2  命令行工具 / 66
5.3  MapReduce編程模型 / 68
5.3.1  Map進(jìn)行分組 / 69
5.3.2  Reduce聚合計(jì)算 / 69
5.3.3  Result獲取結(jié)果 / 70
5.3.4  Finalize格式化輸出 / 70
5.3.5  Options定制輸出 / 71
5.4  本章小結(jié) / 72
第三部分  管  理  篇
第6章  管理工具集 / 74
6.1  數(shù)據(jù)遷移 / 74
6.1.1  導(dǎo)出工具mongoexport / 75
6.1.2  導(dǎo)出工具mongodump / 78
6.1.3  導(dǎo)入工具mongoimport / 79
6.2  數(shù)據(jù)的備份和恢復(fù) / 81
6.2.1  備份工具mongodump / 81
6.2.2  恢復(fù)工具mongorestore / 84
6.3  命令行操作 / 86
6.3.1  通過(guò)eval參數(shù)執(zhí)行指定語(yǔ)句 / 86
6.3.2  執(zhí)行指定文件中的內(nèi)容 / 87
6.4  本章小結(jié) / 88
第7章  管理命令 / 89
7.1  克隆collection / 90
7.1.1  遠(yuǎn)程克隆collection / 90
7.1.2  本地克隆collection / 94
7.2  復(fù)制數(shù)據(jù)庫(kù) / 94
7.2.1  遠(yuǎn)程復(fù)制數(shù)據(jù)庫(kù) / 94
7.2.2  本地復(fù)制數(shù)據(jù)庫(kù) / 96
7.3  刷新磁盤 / 97
7.4  捕獲異常 / 98
7.4.1  返回異常信息 / 98
7.4.2  阻塞客戶端 / 99
7.5  進(jìn)程控制 / 99
7.5.1  查看活動(dòng)進(jìn)程 / 99
7.5.2  結(jié)束進(jìn)程 / 100
7.6  驗(yàn)證collection的有效性 / 100
7.7  數(shù)據(jù)壓縮 / 101
7.8  本章小結(jié) / 102
第8章  訪問(wèn)控制 / 103
8.1  限制特定IP地址訪問(wèn) / 104
8.2  設(shè)置監(jiān)聽(tīng)端口 / 104
8.3  使用用戶名和口令登錄 / 105
8.3.1  建立系統(tǒng)root用戶 / 107
8.3.2  建立指定權(quán)限用戶 / 108
8.3.3  刪除指定用戶 / 109
8.4  本章小結(jié) / 110
第四部分  性  能  篇
第9章  索引及優(yōu)化 / 112
9.1  MongoDB索引概述 / 112
9.2  索引操作 / 113
9.2.1  基礎(chǔ)索引 / 113
9.2.2  靜默方式創(chuàng)建索引 / 115
9.2.3  文檔索引 / 115
9.2.4  組合索引 / 116
9.2.5  唯一索引 / 116
9.2.6  強(qiáng)制使用索引 / 117
9.2.7  刪除索引 / 119
9.2.8   重建索引 / 119
9.2.9  explain查看執(zhí)行計(jì)劃 / 119
9.3  優(yōu)化器Profiler / 121
9.3.1  開(kāi)啟Profiler功能 / 121
9.3.2  查詢Profiler記錄 / 122
9.4  性能優(yōu)化概述 / 123
9.4.1  性能優(yōu)化的原則 / 123
9.4.2  影響性能的因素 / 124
9.5  常用的優(yōu)化方案 / 124
9.5.1  創(chuàng)建索引 / 124
9.5.2  限定返回結(jié)果條數(shù) / 125
9.5.3  只查詢用到的字段 / 125
9.5.4  采用Capped Collection / 126
9.5.5  采用Server Side Code Execution命令集 / 126
9.5.6  使用hint / 127
9.5.7  采用Profiler / 127
9.6  本章小結(jié) / 128
第10章  性能監(jiān)控 / 129
10.1  mongosniff工具 / 129
10.2  mongostat工具 / 131
10.3  db.serverStatus命令 / 132
10.4  db.stats命令 / 134
10.5  HTTP監(jiān)控接口 / 135
10.6  本章小結(jié) / 136
第五部分  架  構(gòu)  篇
第11章  復(fù)制集 / 138
11.1  Replica Sets架構(gòu) / 138
11.2  部署Replica Sets / 139
11.3  主從操作日志 / 144
11.4  主從配置信息 / 146
11.5  管理Replica Sets / 147
11.5.1  主從切換 / 147
11.5.2  讀寫(xiě)分離 / 149
11.5.3  故障轉(zhuǎn)移 / 151
11.5.4  增減節(jié)點(diǎn) / 153
11.6  本章小結(jié) / 160
第12章  分片 / 161
12.1  Sharding簡(jiǎn)介 / 161
12.1.1  Sharding的特點(diǎn) / 161
12.1.2  Sharding架構(gòu) / 162
12.2  構(gòu)建一個(gè)簡(jiǎn)單的Sharding Cluster / 163
12.2.1  啟動(dòng)Shard Server / 163
12.2.2  啟動(dòng)Config Server / 164
12.2.3  啟動(dòng)Route Process / 164
12.2.4  配置Sharding / 164
12.2.5  驗(yàn)證Sharding / 165
12.3  維護(hù)Sharding / 167
12.3.1  列出所有的Shard Server / 168
12.3.2  查看Sharding信息 / 168
12.3.3  判斷是否是Sharding / 169
12.3.4  對(duì)現(xiàn)有的表執(zhí)行Sharding / 169
12.3.5  新增Shard Server / 171
12.3.6  移除Shard Server / 172
12.4  本章小結(jié) / 175
第13章  Replica Sets + Sharding方案 / 176
13.1  Replica Sets+Sharding架構(gòu) / 176
13.2  搭建一個(gè)高可用架構(gòu) / 177
13.2.1  創(chuàng)建數(shù)據(jù)目錄 / 177
13.2.2  配置Replica Sets / 178
13.2.3  配置3臺(tái)Config Server / 181
13.2.4  配置3臺(tái)Route Process / 181
13.2.5  配置Shard Cluster / 181
13.2.6  驗(yàn)證Sharding / 182
13.3  本章小結(jié) / 183
第六部分  開(kāi)  發(fā)  篇
第14章  C#開(kāi)發(fā)接口 / 186
14.1  C#快速入門 / 186
14.1.1  下載驅(qū)動(dòng)和開(kāi)發(fā)環(huán)境 / 186
14.1.2  訪問(wèn)控制 / 188
14.1.3  C#對(duì)數(shù)據(jù)庫(kù)的基礎(chǔ)操作 / 189
14.2  C#驅(qū)動(dòng)一致性 / 194
14.3  C#常用操作 / 195
14.3.1  對(duì)MongoDB實(shí)例的操作 / 195
14.3.2  對(duì)用戶的操作 / 198
14.3.3  對(duì)collection的操作 / 202
14.3.4  對(duì)索引的操作 / 208
14.4  C#高級(jí)查詢 / 211
14.4.1  判斷列名是否存在 / 211
14.4.2  比較運(yùn)算符 / 213
14.4.3  邏輯運(yùn)算符 / 221
14.4.4  正則表達(dá)式查詢 / 223
14.4.5  跳過(guò)查詢 / 224
14.5  用C#操作GridFS / 225
14.5.1  插入數(shù)據(jù) / 225
14.5.2  查詢數(shù)據(jù) / 226
14.5.3  讀取并保存數(shù)據(jù) / 227
14.5.4  刪除數(shù)據(jù) / 228
14.6  本章小結(jié) / 229
第15章  Java開(kāi)發(fā)接口 / 230
15.1  Java快速入門 / 230
15.1.1  下載驅(qū)動(dòng)和開(kāi)發(fā)環(huán)境 / 230
15.1.2  訪問(wèn)控制 / 232
15.1.3  Java對(duì)數(shù)據(jù)庫(kù)的基礎(chǔ)操作 / 233
15.2  Java驅(qū)動(dòng)一致性 / 237
15.3  Java常用操作 / 238
15.3.1  對(duì)MongoDB實(shí)例的操作 / 238
15.3.2  對(duì)用戶的操作 / 241
15.3.3  對(duì)collection的操作 / 243
15.3.4  對(duì)索引的操作 / 250
15.4  Java高級(jí)查詢 / 253
15.4.1  通過(guò)游標(biāo)獲取所有document / 253
15.4.2  比較運(yùn)算符 / 254
15.4.3  邏輯運(yùn)算符 / 263
15.4.4  正則表達(dá)式查詢 / 264
15.4.5  跳過(guò)查詢 / 265
15.5  用Java操作GridFS / 266
15.5.1  插入數(shù)據(jù) / 266
15.5.2  查詢數(shù)據(jù) / 267
15.5.3  讀取并保存數(shù)據(jù) / 268
15.5.4  刪除數(shù)據(jù) / 269
15.6  本章小結(jié) / 270

圖書(shū)封面

圖書(shū)標(biāo)簽Tags

無(wú)

評(píng)論、評(píng)分、閱讀與下載


    MongoDB管理與開(kāi)發(fā)精要 PDF格式下載


用戶評(píng)論 (總計(jì)0條)

 
 

 

250萬(wàn)本中文圖書(shū)簡(jiǎn)介、評(píng)論、評(píng)分,PDF格式免費(fèi)下載。 第一圖書(shū)網(wǎng) 手機(jī)版

京ICP備13047387號(hào)-7