左手 MongoDB,右手 Redis — 從入門到商業實戰
謝乾坤
- 出版商: 電子工業
- 出版日期: 2019-01-31
- 定價: $474
- 售價: 8.5 折 $403
- 語言: 簡體中文
- 頁數: 340
- ISBN: 7121358808
- ISBN-13: 9787121358807
-
相關分類:
NoSQL、MongoDB、Key-Value Store
立即出貨
買這商品的人也買了...
-
$420$332 -
$352Redis 實戰
-
$590$460 -
$301精通 Nginx, 2/e ( Mastering NGINX, 2/e)
-
$520$411 -
$347全棧開發之道:MongoDB+Express+AngularJS+Node.js
-
$500$425 -
$474$450 -
$179微服務架構基礎 (Spring Boot+Spring Cloud+Docker)
-
$450$351 -
$505碼出高效:Java 開發手冊
-
$500$390 -
$390$371 -
$580$458 -
$680$578 -
$834$792 -
$520$406 -
$1,000$790 -
$520$406 -
$580$458 -
$690$545 -
$980$774 -
$500$390 -
$780$616 -
$602MongoDB 進階與實戰:微服務整合、性能優化、架構管理
相關主題
商品描述
本書針對MongoDB和Redis這兩個主流的NoSQL數據庫編寫,採用“理論+實踐”的形式編寫,共計45個實例。
全書共分為4篇:
第1篇,介紹了什麼是NoSQL、MongoDB和Redis相對於傳統關係型數據庫的優勢;
第2篇,介紹了MongoDB與Redis的安裝方法和基礎操作,並使用員工信息管理系統和聊天室網站實踐MongoDB和Redis。
第3篇,介紹了MongoDB與Redis的高級語法和應用;
第4篇,使用MongoDB與Redis完整開發一個問答網站並逐步優化,是對前面知識的綜合應用。
本書配有同步教學視頻。能幫助讀者快速而全面地瞭解每章的內容。本書還免費提供所有實例的源代碼及素材。這些代碼和素材不僅能方便讀者學習,而且也能為以後的工作提供便利。
本書結構清晰、案例豐富、通俗易懂、實用性強。特別適合MongoDB和Redis的初學者與進階讀者作為自學教程。
另外,本書也適合社會培訓學校作為培訓教材,還適合大中專院校的相關專業作為教學參考書。
目錄大綱
●第1篇 基礎知識
-
第1章 進入MongoDB與Redis的世界 2
1.1 非關系型數據庫的產生背景與分類 2
╰1.1.1 關系型數據庫遇到的問題 2
╰1.1.2 非關系型數據庫的分類及特點 2
1.2 MongoDB與Redis可以做什麽 3
╰1.2.1 MongoDB適合做什麽 3
╰1.2.2 Redis適合做什麽 3
1.3 如何學習MongoDB和Redis 4
╰1.3.1 項目驅動,先用再學 4
╰1.3.2 系統梳理,由點到面 4
╰1.3.3 分清主次,不要在無謂的操作中浪費時間 5
╰1.3.4 在不同領域中嘗試 5
1.4 如何使用本書 5
╰1.4.1 本書的產品定位 5
╰1.4.2 本書適用的讀者群體 6
╰1.4.3 如何利用本書實例進行練習 6
-
第2章 數據存儲方式的演進 8
2.1 從文件到MongoDB數據庫 8
╰2.1.1 使用文件保存數據 8
╰2.1.2 使用MongoDB保存數據 9
2.2 從隊列Queue到Redis 9
╰2.2.1 瞭解“生產者/消費者”模型 9
╰2.2.2 實例1:使用Python實現隊列 10
╰2.2.3 Python的Queue及其缺陷 12
╰2.2.4 實例2:使用Redis替代Queue 12
本章小結 14
-
●第2篇 快速入門
-
第3章 MongoDB 快速入門 16
3.1 MongoDB和SQL術語對比 16
3.2 安裝MongoDB 16
╰3.2.1 在Windows中安裝 16
╰3.2.2 在Linux中安裝 19
╰3.2.3 在macOS中安裝 21
3.3 MongoDB的圖形化管理軟件——Robo 3T 25
╰3.3.1 安裝 25
╰3.3.2 認識Robo 3T的界面 28
3.4 MongoDB的基本操作 29
╰3.4.1 實例3:創建數據庫與集合,寫入數據 29
╰3.4.2 實例4:查詢數據 36
╰3.4.3 實例5:修改數據 46
╰3.4.4 實例6:刪除數據 47
╰3.4.5 實例7:數據去重 49
3.5 使用Python操作MongoDB 51
╰3.5.1 連接數據庫 51
╰3.5.2 MongoDB命令在Python中的對應方法 53
╰3.5.3 實例8:插入數據到MongoDB 55
╰3.5.4 實例9:從MongoDB中查詢數據 55
╰3.5.5 實例10:更新/刪除MongoDB中的數據 56
3.6 MongoDB與Python不通用的操作 58
本章小結 64
-
第4章 實例11:用MongoDB開發員工信息管理系統 65
4.1 瞭解實例最終目標 65
4.2 準備工作 69
╰4.2.1 瞭解文件結構 69
╰4.2.2 搭建項目運行環境 69
╰4.2.3 啟動項目 72
4.3 項目開發過程 74
╰4.3.1 生成初始數據 74
╰4.3.2 實現“查詢數據”功能 75
╰4.3.3 實現“添加數據”功能 79
╰4.3.4 實現“更新數據”功能 83
╰4.3.5 實現“刪除數據”功能 85
本章小結 88
-
第5章 Redis快速入門 89
5.1 安裝Redis 89
╰5.1.1 在Windows中安裝Redis 89
╰5.1.2 在Linux中安裝Redis 91
╰5.1.3 在macOS中安裝Redis 92
╰5.1.4 在線測試環境 93
5.2 字符串的創建、查詢和修改 94
╰5.2.1 使用redis-cli實現 94
╰5.2.2 使用Python實現 99
╰5.2.3 字符串的應用 103
5.3 列表的創建、查詢和修改 105
╰5.3.1 使用redis-cli實現 105
╰5.3.2 使用Python實現 110
╰5.3.3 列表的應用 116
5.4 集合的創建和修改 118
╰5.4.1 使用redis-cli實現 118
╰5.4.2 使用Python實現 127
╰5.4.3 集合的應用 132
本章小結 133
-
第6章 實例12:用Redis開發一個聊天室 134
6.1 瞭解實例的最終目標 134
6.2 準備工作 135
╰6.2.1 瞭解文件結構 135
╰6.2.2 搭建項目運行環境 136
6.3 項目開發過程 139
╰6.3.1 實現登錄功能1:創建Redis的連接實例 139
╰6.3.2 實現登錄功能2:實現“檢查昵稱是否重復”功能 141
╰6.3.3 實現登錄功能3:實現“設置和獲取Token”功能 142
╰6.3.4 實現聊天室頁面1:實現“獲取聊天消息”功能 145
╰6.3.5 實現聊天室頁面2:實現“發送新信息”功能 148
╰6.3.6 實現聊天室頁面3:設定“刷屏檢查字符串” 151
╰6.3.7 實現聊天室頁面4:讀取刷屏限制的剩餘時間 153
本章小結 154
-
●第3篇 高級應用
-
第7章 MongoDB的高級語法 156
7.1 AND和OR操作 156
╰7.1.1 實例13:查詢同時符合兩個條件的人(AND操作) 156
╰7.1.2 實例14:查詢只符合其中任一條件的人(OR操作) 159
╰7.1.3 實例15:用Python實現MongoDB的AND與OR操作 162
7.2 查詢子文檔或數組中的數據 163
╰7.2.1 認識嵌入式文檔 163
╰7.2.2 實例16:嵌入式文檔的應用 164
╰7.2.3 認識數組字段 167
╰7.2.4 實例17:數組應用——查詢數組包含與不包含“??”的數據 168
╰7.2.5 實例18:數組應用——根據數組長度查詢數據 170
╰7.2.6 實例19:數組應用——根據索引查詢數據 170
╰7.2.7 Python操作嵌入式文檔與數組字段 172
7.3 MongoDB的聚合查詢 173
╰7.3.1 聚合的基本語法 173
╰7.3.2 實例20:篩選數據 174
╰7.3.3 實例21:篩選與修改字段 177
╰7.3.4 實例22:分組操作 184
╰7.3.5 實例23:拆分數組 191
╰7.3.6 實例24:聯集合查詢 193
╰7.3.7 實例25:使用Python執行聚合操作 204
本章小結 205
-
第8章 MongoDB的優化和安全建議 206
8.1 提高MongoDB讀寫性能 206
╰8.1.1 實例26:“批量插入”與“逐條插入”數據,比較性能差異 206
╰8.1.2 實例27:“插入”與“更新”數據,比較性能差異 214
╰8.1.3 實例28:使用“索引”提高查詢速度 217
╰8.1.4 實例29:引入Redis,以降低MongoDB的讀取頻率 218
╰8.1.5 實例30:增添適當冗餘信息,以提高查詢速度 219
8.2 提高MongoDB的安全性 221
╰8.2.1 配置權限管理機制 221
╰8.2.2 開放外網訪問 230
本章小結 233
-
第9章 Redis的高級數據結構 234
9.1 哈希表的功能和應用 234
╰9.1.1 實例31:使用Redis記錄用戶在線狀態 234
╰9.1.2 實例32:使用Python向哈希表中添加數據 239
╰9.1.3 實例33:使用Python從哈希表中讀取數據 241
╰9.1.4 實例34:使用Python判斷哈希表中是否存在某字段,並獲取字段數量 244
╰9.1.5 實例35:在Redis交互環境redis-cli中讀/寫哈希表 245
9.2 發布消息/訂閱頻道 247
╰9.2.1 實例36:實現一對多的消息發布 247
╰9.2.2 實例37:在Python中發布消息/訂閱頻道 252
╰9.2.3 實例38:在redis-cli中發布消息/訂閱頻道 254
9.3 有序集合 255
╰9.3.1 實例39:實現排行榜功能 256
╰9.3.2 實例40:使用Python讀寫有序集合 258
╰9.3.3 實例41:在Redis交互環境redis-cli中使用有序集合 264
9.4 Redis的安全管理 266
╰9.4.1 實例42:設置密碼並開放外網訪問 266
╰9.4.2 禁用危險命令 269
本章小結 269
-
●第4篇 商業實戰
-
第10章 實例43:搭建一個類似“知乎”的問答網站 272
10.1 瞭解實例的最終目標 272
10.2 準備工作 274
╰10.2.1 瞭解文件結構 274
╰10.2.2 搭建實例運行環境 275
╰10.2.3 運行項目 276
10.3 項目開發過程 278
╰10.3.1 生成初始數據 278
╰10.3.2 實現“查詢問題列表”功能 279
╰10.3.3 實現“查詢回答”功能 281
╰10.3.4 實現“提問與回答”功能 282
╰10.3.5 實現“點贊”與“點踩”功能 283
本章小結 284
-
第11章 實例44:使用Redis存儲網站會話(接第10章實例) 285
11.1 瞭解實例的最終目標 285
╰11.1.1 註冊賬號 285
╰11.1.2 登錄後回答問題 287
╰11.1.3 修改回答 287
╰11.1.4 用戶回答同一個問題的次數 287
╰11.1.5 修改提問 288
11.2 準備工作 288
╰11.2.1 瞭解文件結構 288
╰11.2.2 搭建項目運行環境 290
╰11.2.3 運行實例 290
11.3 開發過程 292
╰11.3.1 會話管理的基本原理 292
╰11.3.2 保存與讀取用戶信息 294
╰11.3.3 更新問題和回答 295
╰11.3.4 檢查用戶名是否已經註冊 295
╰11.3.5 在Redis中儲存與刪除Session 295
╰11.3.6 從Redis中獲取Session 296
╰11.3.7 記錄和檢查“用戶回答是否回答了某個問題” 297
本章小結 297
-
第12章 實例45:大規模驗重和問答排序(接第11章實例) 298
12.1 瞭解實例的最終目標 298
╰12.1.1 賬號驗重 298
╰12.1.2 動態排序 299
╰12.1.3 註銷登錄功能 299
╰12.2.4 翻頁功能 300
12.2 準備工作 300
╰12.2.1 瞭解文件結構 300
╰12.2.2 搭建項目運行環境 302
╰12.2.3 運行項目 302
12.3 開發過程 304
╰12.3.1 瞭解“布隆過濾器”的基本原理 304
╰12.3.2 使用“布隆過濾器”對註冊用戶進行驗重 308
╰12.3.3 讓“問題”與“回答”根據點贊數動態排序 311
本章小結 317
-
第13章 重構和優化 319
13.1 劃分代碼層次 319
╰13.1.1 尋找問題 319
╰13.1.2 如何重構 321
13.2 MongoDB的常見陷阱 322
╰13.2.1 默認超時時間 322
╰13.2.2 硬盤空間的使用 325
13.3 使用Redis的註意事項 326
╰13.3.1 “多Redis實例”與“單Redis實例多數據庫”的差異 326
╰13.3.2 盡可能為每個Key設置過期時間 328
本章小結 329