注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當前位置: 首頁出版圖書科學技術計算機/網(wǎng)絡數(shù)據(jù)庫MongoDB核心原理與實踐

MongoDB核心原理與實踐

MongoDB核心原理與實踐

定 價:¥105.00

作 者: 郭遠威
出版社: 電子工業(yè)出版社
叢編項:
標 簽: 暫缺

ISBN: 9787121430008 出版時間: 2022-03-01 包裝: 平裝-膠訂
開本: 128開 頁數(shù): 404 字數(shù):  

內(nèi)容簡介

  本書內(nèi)容按照循序漸進、由淺入深的原則組織編寫,共分為4篇,包括MongoDB基礎知識、深入理解MongoDB、MongoDB運維管理及MongoDB應用實踐。第1篇主要介紹MongoDB的安裝部署與應用場景、CRUD操作、索引、聚集操作等內(nèi)容,方便讀者快速動手學習實踐;第2篇系統(tǒng)且全面地介紹了底層核心存儲引擎,深入剖析了MongoDB復制集和分片集群的運行機制,以及分布式文件存儲GridFS,為讀者優(yōu)化數(shù)據(jù)庫性能和定位并解決故障問題打下堅實基礎;第3篇主要介紹MongoDB的備份/恢復、系統(tǒng)監(jiān)控、權限控制等內(nèi)容,便于讀者開展日常數(shù)據(jù)庫管理和運維等工作;第4篇主要介紹基于MongoDB的應用開發(fā)和典型案例,讀者可以直接參考其中的核心代碼和應用實踐,將其運用到自己的實際項目中。

作者簡介

  郭遠威,資深大數(shù)據(jù)架構師,阿里云云計算ACP專家、MongoDB中文社區(qū)聯(lián)席主席&專欄作者,熱愛開源技術,對新技術保持高度關注。具有多年與數(shù)據(jù)相關產(chǎn)品研發(fā)經(jīng)驗,曾帶領團隊開發(fā)云存儲平臺、內(nèi)存數(shù)據(jù)庫等產(chǎn)品;為Vodafone、中國移動、Afrimax等海內(nèi)外三十多個各級電信運營商的IT系統(tǒng)提供過咨詢、規(guī)劃、交付服務。著有《大數(shù)據(jù)存儲:MongoDB實戰(zhàn)指南》一書。

圖書目錄

目錄
第1篇 MongoDB基礎知識
第1章 初識MongoDB 2
1.1 MongoDB的發(fā)展與現(xiàn)狀 2
1.2 MongoDB與Hadoop比較 5
1.3 關鍵特性 8
1.4 安裝部署 10
1.4.1 在Windows中安裝MongoDB 11
1.4.2 在Linux中安裝MongoDB 11
1.4.3 在Docker中安裝MongoDB 13
1.5 幾個重要的可執(zhí)行文件 16
1.6 適合的業(yè)務 19
1.6.1 高并發(fā)Web應用 19
1.6.2 實時計算類的應用 20
1.6.3 數(shù)據(jù)中臺 20
1.6.4 游戲類應用 21
1.6.5 日志分析類系統(tǒng) 22
1.6.6 AI應用場景 22
1.7 小結 24
第2章 CRUD操作 25
2.1 查詢操作 25
2.1.1 查詢條件 27
2.1.2 比較操作符 28
2.1.3 邏輯操作符 30
2.1.4 字段名匹配 31
2.1.5 文本查詢 32
2.1.6 正則表達式 34
2.1.7 嵌套文檔查詢 34
2.1.8 數(shù)組查詢 35
2.1.9 地理位置查詢 38
2.1.10 查詢投射與排序 40
2.2 插入操作 41
2.2.1 insertOne 41
2.2.2 insertMany 42
2.2.3 insert 44
2.3 修改操作 45
2.3.1 updateOne 45
2.3.2 updateMany 48
2.3.3 replaceOne 52
2.3.4 update 53
2.4 刪除操作 55
2.4.1 deleteOne 55
2.4.2 deleteMany 55
2.5 批量寫操作 56
2.6 小結 58
第3章 索引 59
3.1 索引原理 59
3.2 創(chuàng)建索引 61
3.3 單個字段的索引 61
3.4 多字段的復合索引 63
3.5 數(shù)組的多鍵索引 65
3.6 查詢計劃分析 66
3.7 索引覆蓋查詢 70
3.8 全文索引 71
3.9 地理位置索引 72
3.10 Hash索引 73
3.11 刪除索引 73
3.12 TTL索引 74
3.13 小結 76
第4章 聚集操作 77
4.1 單個集合中的基礎聚集函數(shù) 77
4.1.1 count()函數(shù) 77
4.1.2 estimatedDocumentCount()函數(shù) 79
4.1.3 countDocuments()函數(shù) 80
4.1.4 distinct()函數(shù) 80
4.2 管道聚集框架 82
4.2.1 $group分組 84
4.2.2 $addFields添加新字段 85
4.2.3 $lookup關聯(lián)查詢 86
4.2.4 $project投射 88
4.2.5 $out將結果輸出到新集合 88
4.2.6 MongoDB聚集操作語句與SQL語句的比較 89
4.3 MapReduce編程 89
4.4 小結 92
第2篇 深入理解MongoDB
第5章 WiredTiger存儲引擎 94
5.1 存儲引擎的數(shù)據(jù)結構 95
5.1.1 典型的B-Tree數(shù)據(jù)結構 95
5.1.2 磁盤中的基礎數(shù)據(jù)結構 96
5.1.3 內(nèi)存中的基礎數(shù)據(jù)結構 97
5.1.4 page的其他數(shù)據(jù)結構 99
5.2 page eviction頁面淘汰 100
5.3 page reconcile將數(shù)據(jù)寫入磁盤 101
5.4 Cache的分配規(guī)則 102
5.5 page的生命周期、狀態(tài)、大小 103
5.5.1 page的生命周期 104
5.5.2 page的各種狀態(tài) 105
5.5.3 page的大小參數(shù) 105
5.6 checkpoint的原理 107
5.6.1 checkpoint包含的關鍵信息 108
5.6.2 checkpoint執(zhí)行流程與觸發(fā)時機 109
5.7 wt工具和磁盤中的元數(shù)據(jù)文件 111
5.7.1 wt工具 111
5.7.2 元數(shù)據(jù)相關文件 112
5.8 事務 115
5.8.1 事務的基本原理 115
5.8.2 與事務相關的數(shù)據(jù)結構 118
5.8.3 事務的snapshot隔離 119
5.8.4 MVCC并發(fā)控制機制 120
5.8.5 事務日志(Journal) 122
5.9 一個完整的寫操作流程 123
5.10 小結 124
第6章 復制集 125
6.1 復制集功能概述 125
6.2 復制集部署架構 126
6.2.1 典型的3節(jié)點復制集部署架構 126
6.2.2 多數(shù)據(jù)中心復制集部署架構 128
6.3 完整部署一個復制集 129
6.3.1 創(chuàng)建每個節(jié)點上存儲數(shù)據(jù)的目錄 129
6.3.2 創(chuàng)建每個節(jié)點的日志文件 130
6.3.3 創(chuàng)建每個節(jié)點啟動時的配置文件 130
6.3.4 啟動每個節(jié)點上的mongod實例 131
6.3.5 初始化復制集 131
6.3.6 將其他節(jié)點添加到復制集 132
6.3.7 觀察復制集的運行狀態(tài) 132
6.4 復制集的維護 137
6.4.1 刪除節(jié)點 137
6.4.2 添加Secondary節(jié)點 138
6.4.3 添加Arbiter節(jié)點 140
6.4.4 復制集的配置信息 140
6.4.5 重新配置復制集 143
6.4.6 故障轉移Failover分析 145
6.5 復制集選舉Primary節(jié)點的機制 149
6.5.1 復制集中的投票節(jié)點和非投票節(jié)點 149
6.5.2 選舉觸發(fā)條件和選舉為Primary節(jié)點的因素 150
6.5.3 復制集能正常完成選舉的條件 152
6.6 基于Oplog的數(shù)據(jù)同步機制 154
6.6.1 Oplog集合包含的內(nèi)容分析 155
6.6.2 Oplog的默認大小及性能影響 156
6.6.3 Oplog集合大小的修改 158
6.6.4 使用initial sync解決Oplog嚴重落后的問題 159
6.7 寫關注(writeConcern)模式 162
6.7.1 默認的“寫關注”場景 162
6.7.2 配置寫關注 162
6.8 讀參考(readPreference)模式 165
6.8.1 讀參考常見的應用場景 166
6.8.2 讀參考的幾種模式分析 167
6.8.3 設置tags標簽使讀請求指向特定節(jié)點 168
6.8.4 如何從多個匹配的節(jié)點中選擇一個目標 169
6.9 讀關注(readConcern)模式 171
6.9.1 Primary節(jié)點切換可能導致數(shù)據(jù)回滾 171
6.9.2 設置讀關注避免讀到的數(shù)據(jù)被回滾 172
6.10 Change Streams實現(xiàn)數(shù)據(jù)實時同步 176
6.10.1 實現(xiàn)原理 176
6.10.2 實時數(shù)據(jù)流的格式 177
6.10.3 打開實時數(shù)據(jù)流 178
6.10.4 控制實時數(shù)據(jù)流的輸出 179
6.11 小結 181
第7章 分片集群 182
7.1 分片集群的部署架構 182
7.2 手動部署一個分片集群 184
7.2.1 分片shard1配置 184
7.2.2 分片shard2配置 186
7.2.3 config服務器配置 187
7.2.4 mongos路由配置 188
7.2.5 啟動分片集群 189
7.2.6 配置集合使其分片 192
7.2.7 正確關閉和重啟集群 194
7.3 片鍵及選擇策略 195
7.3.1 片鍵選擇策略 197
7.3.2 基于Hash分片 200
7.3.3 基于范圍的分片 203
7.4 chunk 204
7.4.1 chunk的分割 204
7.4.2 chunk大小的修改 209
7.5 Balancer 210
7.5.1 一個完整的chunk遷移過程 212
7.5.2 Balancer的管理 214
7.5.3 存儲元數(shù)據(jù)的config數(shù)據(jù)庫 217
7.6 小結 220
第8章 分布式文件存儲GridFS 221
8.1 什么是GridFS 222
8.2 使用GridFS的場景 226
8.3 GridFS常用操作 227
8.3.1 上傳文件 228
8.3.2 下載文件 229
8.3.3 刪除文件 230
8.3.4 查詢文件 230
8.4 小結 231
第3篇 MongoDB運維管理
第9章 管理與監(jiān)控 234
9.1 數(shù)據(jù)導入/導出 234
9.1.1 導出工具mongoexport 235
9.1.2 導入工具mongoimport 237
9.2 數(shù)據(jù)備份/恢復 240
9.2.1 備份工具mongodump 241
9.2.2 恢復工具mongorestore 243
9.3 命令行工具監(jiān)控管理 245
9.3.1 mongotop 246
9.3.2 mongostat 247
9.3.3 db.stats() 249
9.3.4 db.serverStatus() 251
9.4 可視化數(shù)據(jù)庫操作 256
9.4.1 Compass工具的安裝與連接 256
9.4.2 可視化性能監(jiān)控 257
9.4.3 可視化數(shù)據(jù)庫操作 258
9.4.4 可視化聚集操作 262
9.4.5 內(nèi)嵌mongoshell開發(fā)環(huán)境 263
9.5 小結 264
第10章 權限控制 265
10.1 基于角色與權限控制原理 265
10.2 啟動角色權限控制功能 267
10.3 MongoDB默認提供的角色 271
10.3.1 針對特定數(shù)據(jù)庫中的讀/寫角色 271
10.3.2 針對特定數(shù)據(jù)庫中的管理角色 272
10.3.3 針對所有數(shù)據(jù)庫中的角色 272
10.3.4 超級用戶角色 273
10.4 用戶管理 274
10.4.1 查看數(shù)據(jù)庫中的用戶 274
10.4.2 創(chuàng)建新用戶 275
10.4.3 修改用戶的角色 276
10.4.4 刪除用戶 276
10.5 角色管理 277
10.5.1 查看數(shù)據(jù)庫中的角色 278
10.5.2 查看角色對應的權限信息 278
10.5.3 創(chuàng)建一個自定義角色 280
10.5.4 驗證自定義角色的權限 282
10.5.5 刪除自定義的角色 283
10.6 小結 283
第4篇 MongoDB應用實踐
第11章 MongoDB應用開發(fā) 286
11.1 基于Python的開發(fā) 286
11.1.1 單實例中的CRUD操作 287
11.1.2 復制集中的操作 290
11.1.3 分片集群中的操作 291
11.1.4 GridFS分布式文件操作 292
11.2 基于.net core的開發(fā) 294
11.2.1 CRUD操作 296
11.2.2 GridFS分布式文件操作 298
11.3 基于Java和Spring Boot框架的開發(fā) 301
11.3.1 開發(fā)框架介紹 301
11.3.2 CRUD操作 304
11.4 小結 306
第12章 基于MongoDB的數(shù)據(jù)中臺案例 308
12.1 現(xiàn)代企業(yè)數(shù)據(jù)架構及痛點 308
12.2 什么是數(shù)據(jù)中臺 309
12.3 數(shù)據(jù)中臺的價值 312
12.4 數(shù)據(jù)中臺的技術模塊 313
12.5 基于MongoDB的數(shù)據(jù)中臺方案 320
12.6 數(shù)據(jù)中臺方案選型 327
12.7 小結 328
第13章 百萬級高并發(fā)集群性能提高案例 329
13.1 背景 329
13.2 軟件優(yōu)化 330
13.2.1 業(yè)務層面優(yōu)化 330
13.2.2 MongoDB線程模型優(yōu)化 331
13.2.3 WiredTiger存儲引擎優(yōu)化 333
13.3 解決服務器系統(tǒng)磁盤I/O問題 342
13.3.1 服務器I/O硬件問題背景 342
13.3.2 服務器I/O硬件問題解決后性能對比 343
13.4 主節(jié)點硬件升級后續(xù)優(yōu)化 346
13.4.1 readConcern配置優(yōu)化 346
13.4.2 替換從節(jié)點服務器為升級后的高I/O服務器 350
13.4.3 結論 351
13.4.4 繼續(xù)優(yōu)化調(diào)整存儲引起參數(shù) 352
13.5 小結 353
第14章 基于MongoDB的金融系統(tǒng)案例 355
14.1 項目背景 355
14.2 面臨的主要挑戰(zhàn) 355
14.3 技術選型 356
14.4 方案

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) www.afriseller.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號