科技>计算机>数据库
左手MongoDB,右手Redis——从入门到商业实战

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

作者:谢乾坤
ISBN:9787121358807
定价:¥79.0
字数:476千字
页数:340
出版时间:2019-01
开本:16开
版次:01-01
装帧:
出版社:电子工业出版社
简介

本书针对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.实例的商业性、应用性强 本书提供的实例多数来源于真正的商业项目,具有很高的参考价值,有的代码甚至可以直接被移植到实际的项目中,进行重复使用,让“从学到用”这个过程变得更加直接。 感谢各位读者选择了本书!希望本书能对读者的学习有所助益。 虽然我们对书中所述内容都尽量核实并多次进行文字校对,但因时间紧张,加之水平所限,书中难免有疏漏和错误之处,敬请广大读者批评并指正。 联系编辑请发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

作者简介

编辑推荐

作者寄语

电子资料

www.luweidong.cn

下一个