左手 MongoDB,右手 Redis — 從入門到商業實戰
謝乾坤
- 出版商: 電子工業
- 出版日期: 2019-01-31
- 售價: $474
- 貴賓價: 9.5 折 $450
- 語言: 簡體中文
- 頁數: 340
- ISBN: 7121358808
- ISBN-13: 9787121358807
-
相關分類:
NoSQL、MongoDB、Key-Value Store
立即出貨
買這商品的人也買了...
-
$420$332 -
$414$393 -
$590$460 -
$301精通 Nginx, 2/e ( Mastering NGINX, 2/e)
-
$520$411 -
$347全棧開發之道:MongoDB+Express+AngularJS+Node.js
-
$500$390 -
$474$450 -
$179微服務架構基礎 (Spring Boot+Spring Cloud+Docker)
-
$450$351 -
$505碼出高效:Java 開發手冊
-
$500$390 -
$390$371 -
$580$493 -
$680$578 -
$834$792 -
$520$406 -
$1,000$790 -
$520$406 -
$580$458 -
$690$587 -
$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