左手MongoDB,右手Redis——从入门到商业实战
  • 推荐3
  • 收藏8
  • 浏览3.1K

左手MongoDB,右手Redis——从入门到商业实战

谢乾坤 (作者) 

  • 书  号:978-7-121-35880-7
  • 出版日期:2019-01-25
  • 页  数:340
  • 开  本:16(185*235)
  • 出版状态:上市销售
  • 维护人:吴宏伟
电子书 ¥49.00
购买电子书
纸质版 ¥79.00
本书针对MongoDB和Redis这两个主流的NoSQL数据库编写,采用“理论+实践”的形式编写,共计45个实例。
全书共分为4篇:第1篇,介绍了什么是NoSQL、MongoDB和Redis相对于传统关系型数据库的优势;第2篇,介绍了MongoDB与Redis的安装方法和基础操作,并使用员工信息管理系统和聊天室网站实践MongoDB和Redis。第3篇,介绍了MongoDB与Redis的高级语法和应用;第4篇,使用MongoDB与Redis完整开发一个问答网站并逐步优化,是对前面知识的综合应用。
本书配有同步教学视频。能帮助读者快速而全面地了解每章的内容。本书还免费提供所有实例的源代码及素材。这些代码和素材不仅能方便读者学习,而且也能为以后的工作提供便利。
本书结构清晰、案例丰富、通俗易懂、实用性强。特别适合MongoDB和Redis的初学者与进阶读者作为自学教程。另外,本书也适合社会培训学校作为培训教材,还适合大中专院校的相关专业作为教学参考书。
1.免费提供教学视频
作者按照图书的内容和结构,录制了对应的教学视频。
2.可加入本书QQ学习群提问、交流
读者可加入本书QQ学习群(705161389)与千人成为同学,共享资源。
3.通过45个实例进行讲解
本书提供了45个实例,将理论讲解最终都落实到代码实现上。而且,这些实例会伴随着图书内容的推进,不断地趋近于工程化的项目风格,具有很高的应用价值。
4.免费提供实例素材
5.免费提供实例的源代码
6.覆盖的知识面广
7.采用短段、短句,便于流畅阅读
8.实例的商业性、应用性强
本书使用通俗易懂的语言进行讲解,从基础操作到高级应用,再到基于MongoDB与Redis开发多个网站。
本书具有以下特点。
1.免费提供教学视频
作者按照图书的内容和结构,录制了对应的教学视频。
2.可加入本书QQ学习群提问、交流
读者可加入本书QQ学习群(705161389)与上千人成为同学,共享资源。
3.通过45个实例进行讲解
本书提供了45个实例,将理论讲解最终都落实到代码实现上。而且,这些实例会伴随着本书内容的推进,不断地趋近于工程化的项目风格,具有很高的应用价值。
4.免费提供实例素材
书中实例用到的素材已经提供。读者可以通过这些素材完全再现书中的实例效果。
5.免费提供实例的源代码
读者可以一边阅读本书,一边参照源代码动手练习。这样不仅能提高学习的效率,还能对书中的知识有更加直观的认识,从而逐渐培养自己的编码能力。
6.覆盖的知识面广
本书囊括了MongoDB与Redis的大部分功能。读者在系统学习之后,可以把本书当成MongoDB与Redis的工具书长期保留在身边。无论何时何地,只要遇到生僻的操作,都可以及时找到说明。
7.采用短段、短句,便于流畅阅读
本书采用丰富的层次,并采用简洁的段落和语句,所以,本书读来有顺水行舟的轻快感。
8.实例的商业性、应用性强
本书提供的实例多数来源于真正的商业项目,具有很高的参考价值,有的代码甚至可以直接被移植到实际的项目中,进行重复使用,让“从学到用”这个过程变得更加直接。

感谢各位读者选择了本书!希望本书能对读者的学习有所助益。
虽然我们对书中所述内容都尽量核实并多次进行文字校对,但因时间紧张,加之水平所限,书中难免有疏漏和错误之处,敬请广大读者批评并指正。
联系编辑请发E-mail到wuhongwei@phei.com.cn。

目录

●第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


读者评论

  • 下载资源的地方在哪里呢?

    MickEYFLy发表于 2020/7/9 10:38:12
  • RealFace发表于 2019/7/2 11:29:14
  • 源码呢?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????

    lzw730发表于 2019/6/22 17:47:46
  • 源码呢

    粉粉一族发表于 2019/6/17 22:41:13
  • 真lj

    0&1发表于 2019/6/8 15:09:19

电子书版本

  • Epub

相关图书

Python统计可视化之Altair探索分析实践指南

刘大成 (作者)

本书以Altair为核心工具,通过认识数据、理解数据和探索数据全方位地探索分析数据集的统计可视化形式,以应用数据和案例研究为实践场景,使用Altair数据加工箱...

 

实用推荐系统

Kim Falk (作者) 李源 朱罡罡 温睿 (译者)

要构建一个实用的“智能”推荐系统,不仅需要有好的算法,还需要了解接收推荐的用户。本书分为两部分,第一部分侧重于基础架构,主要介绍推荐系统的工作原理,展示如何创建...

¥119.00

Kubernetes权威指南:从Docker到Kubernetes实践全接触(第5版)

龚正 吴治辉 闫健勇 (作者)

Kubernetes是由谷歌开源的容器集群管理系统,为容器化应用提供了资源调度、部署运行、服务发现、扩缩容等一整套功能。Kubernetes也是将“一切以服务(...

 

Harbor权威指南

张海宁 邹佳 王岩 尹文开 任茂盛 等 (作者)

在云原生生态中,容器镜像和其他云原生制品的管理与分发是至关重要的一环。本书对开源云原生制品仓库Harbor展开全面讲解,由Harbor开源项目维护者和贡献者倾力...

 

集成学习:基础与算法

Zhi-Hua Zhou (作者) 李楠 (译者)

集成学习方法是一类先进的机器学习方法,这类方法训练多个学习器并将它们结合起来解决一个问题,在实践中获得了巨大成功。<br>全书分为三部分。第一部分主要介绍集成学...

¥89.00

Kubernetes源码剖析

郑东旭 (作者)

本书主要分析了Kubernetes核心功能的实现原理,是一本帮助读者了解Kubernetes架构设计及内部原理实现的书。由于Kubernetes代码量较大,源码...