左手MongoDB,右手Redis——從入門到商業實戰( 簡體 字) | |
作者:謝乾坤 | 類別:1. -> 資料庫 -> MongoDB 2. -> 資料庫 -> Redis |
出版社:電子工業出版社 | 3dWoo書號: 50666 詢問書籍請說出此書號! 有庫存 NT售價: 395 元 |
出版日:1/1/2019 | |
頁數:340 | |
光碟數:0 | |
站長推薦: | |
印刷:黑白印刷 | 語系: ( 簡體 字 ) |
ISBN:9787121358807 | 加入購物車 │加到我的最愛 (請先登入會員) |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證, 繁體書的下載亦請直接連絡出版社) | |
●第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 本書針對MongoDB和Redis這兩個主流的NoSQL數據庫編寫,采用“理論+實踐”的形式編寫,共計45個實例。全書共分為4篇:第1篇,介紹了什么是NoSQL、MongoDB和Redis相對于傳統關系型數據庫的優勢;第2篇,介紹了MongoDB與Redis的安裝方法和基礎操作,并使用員工信息管理系統和聊天室網站實踐MongoDB和Redis。第3篇,介紹了MongoDB與Redis的高級語法和應用;第4篇,使用MongoDB與Redis完整開發一個問答網站并逐步優化,是對前面知識的綜合應用。本書配有同步教學視頻。能幫助讀者快速而全面地了解每章的內容。本書還免費提供所有實例的源代碼及素材。這些代碼和素材不僅能方便讀者學習,而且也能為以后的工作提供便利。本書結構清晰、案例豐富、通俗易懂、實用性強。特別適合MongoDB和Redis的初學者與進階讀者作為自學教程。另外,本書也適合社會培訓學校作為培訓教材,還適合大中專院校的相關專業作為教學參考書。
本書使用通俗易懂的語言進行講解,從基礎操作到高級應用,再到基于MongoDB與Redis開發多個網站。
本書具有以下特點。 1.免費提供教學視頻 作者按照圖書的內容和結構,錄制了對應的教學視頻。 2.可加入本書QQ學習群提問、交流 讀者可加入本書QQ學習群(705161389)與上千人成為同學,共享資源。 3.通過45個實例進行講解 本書提供了45個實例,將理論講解最終都落實到代碼實現上。而且,這些實例會伴隨著本書內容的推進,不斷地趨近于工程化的項目風格,具有很高的應用價值。 4.免費提供實例素材 書中實例用到的素材已經提供。讀者可以通過這些素材完全再現書中的實例效果。 5.免費提供實例的源代碼 讀者可以一邊閱讀本書,一邊參照源代碼動手練習。這樣不僅能提高學習的效率,還能對書中的知識有更加直觀的認識,從而逐漸培養自己的編碼能力。 6.覆蓋的知識面廣 本書囊括了MongoDB與Redis的大部分功能。讀者在系統學習之后,可以把本書當成MongoDB與Redis的工具書長期保留在身邊。無論何時何地,只要遇到生僻的操作,都可以及時找到說明。 7.采用短段、短句,便于流暢閱讀 本書采用豐富的層次,并采用簡潔的段落和語句,所以,本書讀來有順水行舟的輕快感。 8.實例的商業性、應用性強 本書提供的實例多數來源于真正的商業項目,具有很高的參考價值,有的代碼甚至可以直接被移植到實際的項目中,進行重復使用,讓“從學到用”這個過程變得更加直接。 感謝各位讀者選擇了本書!希望本書能對讀者的學習有所助益。 雖然我們對書中所述內容都盡量核實并多次進行文字校對,但因時間緊張,加之水平所限,書中難免有疏漏和錯誤之處,敬請廣大讀者批評并指正。 |