当前位置:主页 > 计算机电子书 > 数据库 > NoSQL下载
NoSQL数据库技术实战

NoSQL数据库技术实战 PDF 高清版

  • 更新:2020-08-18
  • 大小:78.3 MB
  • 类别:NoSQL
  • 作者:皮雄军
  • 出版:清华大学出版社
  • 格式:PDF

  • 资源介绍
  • 相关推荐

NoSQL数据库技术实战由浅入深,全面系统地介绍了NoSQL系统。本书既对NoSQL系统的理论进行了深入浅出的分析,又介绍了每一种NoSQL数据库在业界广泛应用的一个具体系统,理论与实战并重。

本书共分5篇,12章。涵盖的内容有:NoSQL与大数据简介、NoSQL的数据一致性、NoSQL的水平扩展与其他基础知识、BigTable与Google云计算原理、Google云计算的开源版本——Hadoop、Dynamo:Amazon的高可用键值对存储、LevelDb——出自Google的Key-Value数据库、Redis实战、面向文档的数据库CouchDB、MongoDB实战、MySQL基础、MySQL高级特性与性能优化。

本书涉及面广,从基本操作到高级技术和核心原理,再到项目开发,几乎涉及NoSQL系统的所有重要知识。本书适合所有想全面学习NoSQL的人员阅读,也适合各种使用NoSQL进行开发的工程技术人员使用。

目录

  • 第1篇 NoSQL的兴起与理论基础
  • 第1章 NoSQL与大数据简介 2
  • 1.1 引子——NoSQL在国内使用的案例 2
  • 1.1.1 新浪微博 2
  • 1.1.2 淘宝数据平台 3
  • 1.1.3 视觉中国网站 4
  • 1.1.4 优酷运营数据分析 5
  • 1.1.5 飞信空间 6
  • 1.1.6 豆瓣社区 7
  • 1.2 大数据 8
  • 1.2.1 大数据的度量单位 8
  • 1.2.2 大数据的特点 9
  • 1.3 大数据相关技术 10
  • 1.3.1 大数据采集技术 10
  • 1.3.2 大数据预处理技术 11
  • 1.3.3 大数据存储及管理技术 11
  • 1.3.4 大数据分析及挖掘技术 11
  • 1.3.5 大数据展现与应用技术 12
  • 1.4 NoSQL简介 12
  • 1.4.1 什么是NoSQL 12
  • 1.4.2 关系型数据库简史 13
  • 1.4.3 数据库分类 13
  • 1.4.4 关系型数据库的优势 14
  • 1.4.5 不擅长的处理 15
  • 1.4.6 NoSQL数据库 18
  • 1.5 NoSQL数据库的类型 20
  • 1.5.1 键值(Key/Value)存储 20
  • 1.5.2 面向文档的数据库 21
  • 1.5.3 面向列的数据库 22
  • 1.6 如何使用和学习NoSQL数据库 23
  • 1.6.1 始终只是一种选择 23
  • 1.6.2 在何种程度上信赖它 23
  • 1.7 云数据管理 24
  • 第2章 NoSQL的数据一致性 25
  • 2.1 传统关系数据库中的ACID 25
  • 2.1.1 原子性 25
  • 2.1.2 一致性 25
  • 2.1.3 隔离性 26
  • 2.1.4 持久性 26
  • 2.1.5 举例 26
  • 2.2 CAP理论 27
  • 2.2.1 NoSQL系统是分布式系统 27
  • 2.2.2 CAP理论阐述 27
  • 2.3 AP的例子——DNS系统 29
  • 2.3.1 DNS系统 29
  • 2.3.2 DNS域名解析过程 29
  • 2.3.3 DNS系统是最终一致性的 31
  • 2.4 数据一致性模型与BASE 31
  • 2.4.1 数据一致性模型 31
  • 2.4.2 BASE(Basically Available,Soft-state,Eventual consistency) 32
  • 2.5 数据一致性实现方法 33
  • 2.5.1 Quorum系统NRW策略 33
  • 2.5.2 时间戳策略 34
  • 2.5.3 向量时钟 37
  • 第3章 NoSQL的水平扩展与其他基础知识 41
  • 3.1 所有数据存放在一个服务器上 41
  • 3.2 分片(Sharding) 41
  • 3.3 主从复制 43
  • 3.4 对等(Peer To Peer)复制 44
  • 3.5 复制和分片的同时使用 45
  • 3.6 数据水平扩展的方法总结 46
  • 3.7 分片对数据的划分方式 46
  • 3.7.1 Range-Based Partitioning 47
  • 3.7.2 Round-Robin 49
  • 3.8 一致性hash算法(Consistent Hashing) 50
  • 3.8.1 基本场景 51
  • 3.8.2 hash算法和单调性 51
  • 3.8.3 Consistent Hashing算法的原理 51
  • 3.8.4 虚拟节点 54
  • 3.9 磁盘的读写特点及五分钟法则 55
  • 3.9.1 磁道、扇区、柱面和磁头数 56
  • 3.9.2 固态硬盘(SSD):随机读写速度快 57
  • 3.9.3 内存:读写速度极快 57
  • 3.9.4 五分钟法则 57
  • 3.10 不要删除数据 58
  • 第2篇 列式NoSQL系统
  • 第4章 BigTable与Google云计算原理 60
  • 4.1 云计算 60
  • 4.1.1 云计算的概念 60
  • 4.1.2 云计算发展现状 63
  • 4.1.3 云计算实现机制 64
  • 4.1.4 网格计算与云计算 66
  • 4.2 Google文件系统GFS 68
  • 4.2.1 系统架构 69
  • 4.2.2 容错机制 71
  • 4.2.3 系统管理技术 72
  • 4.3 并行数据处理MapReduce 73
  • 4.3.1 产生背景 73
  • 4.3.2 编程模型 73
  • 4.3.3 实现机制 74
  • 4.4 分布式锁服务Chubby 78
  • 4.4.1 Paxos算法 78
  • 4.4.2 Chubby系统设计 79
  • 4.4.3 Chubby文件系统 80
  • 4.4.4 通信协议 82
  • 4.4.5 正确性与性能 83
  • 4.5 分布式结构化数据表BigTable 84
  • 4.5.1 设计动机与目标 85
  • 4.5.2 数据模型 85
  • 4.5.3 系统架构 87
  • 4.5.4 主服务器 88
  • 4.5.5 子表服务器 89
  • 4.5.6 性能优化 92
  • 第5章 Google云计算的开源版本——Hadoop 94
  • 5.1 Hadoop简介 94
  • 5.1.1 Hadoop发展史 94
  • 5.1.2 Apache Hadoop项目及体系结构 96
  • 5.2 Hadoop产生的原因 97
  • 5.2.1 海量的数据 97
  • 5.2.2 数据的存储和分析 98
  • 5.3 Hadoop和其他系统的比较 99
  • 5.3.1 和关系型数据库管理系统(RDBMS)的比较 99
  • 5.3.2 和网格计算的比较 100
  • 5.4 HDFS的架构设计 101
  • 5.4.1 前提和设计目标 102
  • 5.4.2 Namenode和Datanode 102
  • 5.4.3 文件系统的Namespace 103
  • 5.4.4 数据复制 103
  • 5.4.5 文件系统元数据的持久化 104
  • 5.4.6 通讯协议 105
  • 5.4.7 健壮性 105
  • 5.4.8 数据组织 106
  • 5.4.9 可访问性 107
  • 5.4.10 空间的回收 107
  • 5.5 安装Hadoop 108
  • 5.5.1 安装JDK 1.7 108
  • 5.5.2 安装Hadoop 109
  • 5.6 HDFS操作 113
  • 5.6.1 使用FS Shell命令操作HDFS 113
  • 5.6.2 编程读写HDFS 118
  • 5.7 Hadoop中的MapReduce模型 119
  • 5.7.1 MapReduce计算模型 119
  • 5.7.2 Hadoop中的Hello World程序 120
  • 5.7.3 运行MapReduce程序 124
  • 5.7.4 Hadoop中的Hello World程序——新的API 125
  • 5.7.5 MapReduce的数据流和控制流 127
  • 5.8 Zookeeper 129
  • 5.8.1 Zookeeper配置安装 129
  • 5.8.2 Zookeeper的数据模型 130
  • 5.8.3 Zookeeper的基本使用 131
  • 5.8.4 ZooKeeper 典型的应用场景 133
  • 5.8.5 统一命名服务(Name Service) 133
  • 5.8.6 共享锁(Locks) 136
  • 5.8.7 队列管理 137
  • 5.8.8 Zookeeper总结 139
  • 5.9 HBase 139
  • 5.9.1 简介 139
  • 5.9.2 逻辑视图 139
  • 5.9.3 物理存储 141
  • 5.9.4 系统架构 144
  • 5.9.5 关键算法/流程 146
  • 5.10 HBase的安装和配置 149
  • 5.11 HBase使用例子 151
  • 第3篇 Key/Value NoSQL系统
  • 第6章 Dynamo:Amazon的高可用键值对存储 156
  • 6.1 简介 156
  • 6.2 背景 157
  • 6.2.1 系统假设和要求 158
  • 6.2.2 服务水平协议(SLA) 158
  • 6.2.3 设计考虑 160
  • 6.3 系统架构 161
  • 6.3.1 系统接口 162
  • 6.3.2 划分算法 162
  • 6.3.3 复制 163
  • 6.3.4 版本的数据 163
  • 6.3.5 执行get()和put()操作 165
  • 6.3.6 故障处理:暗示移交(Hinted Handoff) 166
  • 6.3.7 处理永久性故障:副本同步 167
  • 6.3.8 会员和故障检测 167
  • 6.3.9 添加/删除存储节点 169
  • 6.4 实现 169
  • 6.5 Amazon使用的经验与教训 170
  • 6.5.1 平衡性能和耐久性 171
  • 6.5.2 确保均匀的负载分布 172
  • 6.5.3 不同版本:何时以及有多少 175
  • 6.5.4 客户端驱动或服务器驱动协调 176
  • 6.5.5 权衡后台和前台任务 177
  • 6.5.6 讨论 177
  • 6.6 结论 178
  • 第7章 LevelDb——出自Google的 Key-Value数据库 179
  • 7.1 LevelDb简介 179
  • 7.2 LevelDb的静态部分 180
  • 7.2.1 整体架构 180
  • 7.2.2 log文件 182
  • 7.2.3 SSTable文件 183
  • 7.2.4 MemTable详解 186
  • 7.3 LevelDb的动态部分 187
  • 7.3.1 写入与删除记录 187
  • 7.3.2 读取记录 188
  • 7.3.3 Compaction操作 190
  • 7.3.4 LevelDb中的Cache 192
  • 7.3.5 Version、VersionEdit和VersionSet 194
  • 第8章 Redis实战 195
  • 8.1 Redis安装与准备 195
  • 8.1.1 下载与安装 195
  • 8.1.2 配置文件修改 196
  • 8.1.3 启动Redis 197
  • 8.1.4 停止Redis 198
  • 8.2 Redis所支持的数据结构 198
  • 8.2.1 String 199
  • 8.2.2 List 203
  • 8.2.3 Set 207
  • 8.2.4 Hash/哈希/散列 210
  • 8.2.5 有序集合/Zset 213
  • 8.3 Key操作命令 218
  • 8.3.1 概述 218
  • 8.3.2 命令示例 220
  • 8.4 事物 223
  • 8.4.1 事物概述 223
  • 8.4.2 相关命令 223
  • 8.4.3 命令示例 224
  • 8.4.4 WATCH命令和基于CAS的乐观锁 225
  • 8.5 Redis的主从复制 226
  • 8.5.1 Redis的Replication 226
  • 8.5.2 Replication的工作原理 227
  • 8.5.3 如何配置Replication 227
  • 8.5.4 应用示例 228
  • 8.6 Redis的持久化 228
  • 8.6.1 持久化机制 228
  • 8.6.2 RDB机制的优势和劣势 229
  • 8.6.3 AOF机制的优势和劣势 229
  • 8.6.4 其他 230
  • 8.7 Redis的虚拟内存 231
  • 8.7.1 简介 231
  • 8.7.2 应用场景 231
  • 8.7.3 配置 231
  • 8.8 pipeline/管线 233
  • 8.8.1 请求应答协议和RTT 233
  • 8.8.2 管线(pipelining) 233
  • 8.8.3 Benchmark 234
  • 8.9 实例 234
  • 第4篇 文档型NoSQL系统
  • 第9章 面向文档的数据库CouchDB 240
  • 9.1 CouchDB介绍 240
  • 9.1.1 基本概念 240
  • 9.1.2 扩展概念 241
  • 9.2 CouchDB安装与配置 241
  • 9.3 REST API 242
  • 9.3.1 数据库REST API 243
  • 9.3.2 文档REST API 243
  • 9.3.3 视图 REST API 243
  • 9.3.4 附件 REST API 244
  • 9.4 为应用建模 244
  • 9.4.1 描述实体 244
  • 9.4.2 描述一对一和一对多关系 245
  • 9.4.3 描述多对多关系 246
  • 9.5 实战开发 247
  • 9.5.1 开发Web应用 247
  • 9.5.2 使用CouchDB jQuery插件 248
  • 9.5.3 示例应用建模 249
  • 9.5.4 管理文档 250
  • 9.5.5 视图 253
  • 9.6 高级话题 259
  • 9.6.1 权限控制与安全 259
  • 9.6.2 文档更新校验 259
  • 9.6.3 分组 259
  • 9.6.4 键的排序 260
  • 第10章 MongoDB实战 261
  • 10.1 为什么要使用MongoDB 261
  • 10.1.1 不能确定的表结构信息 261
  • 10.1.2 序列化可以解决一切问题吗 261
  • 10.1.3 无需定义表结构的数据库 262
  • 10.2 MongoDB的优势和不足 262
  • 10.2.1 无表结构 262
  • 10.2.2 容易扩展 263
  • 10.2.3 丰富的功能 263
  • 10.2.4 性能卓越 264
  • 10.2.5 简便的管理 264
  • 10.2.6 MongoDB的不足 264
  • 10.3 基本概念 264
  • 10.4 Linux下MongoDB的安装和配置、启动和停止 265
  • 10.4.1 下载 265
  • 10.4.2 安装 266
  • 10.4.3 启动数据库 267
  • 10.4.4 停止数据库 269
  • 10.5 创建、更新及删除文档 270
  • 10.5.1 连接数据库 270
  • 10.5.2 插入记录 270
  • 10.5.3 _id key 272
  • 10.5.4 修改记录 272
  • 10.5.5 删除记录 272
  • 10.6 查询记录 273
  • 10.6.1 普通查询 273
  • 10.6.2 条件查询 274
  • 10.6.3 findOne()语法 274
  • 10.6.4 通过limit限制结果集数量 274
  • 10.7 高级查询 275
  • 10.7.1 条件操作符 275
  • 10.7.2 $all匹配所有 275
  • 10.7.3 $exists判断字段是否存在 276
  • 10.7.4 Null值处理 276
  • 10.7.5 $mod取模运算 276
  • 10.7.6 $ne不等于 277
  • 10.7.7 $in包含 277
  • 10.7.8 $nin不包含 278
  • 10.7.9 $size数组元素个数 278
  • 10.7.10 正则表达式匹配 278
  • 10.7.11 JavaScript查询和$where查询 279
  • 10.7.12 count查询记录条数 279
  • 10.7.13 skip限制返回记录的起点 279
  • 10.7.14 sort排序 280
  • 10.7.15 游标 280
  • 10.8 MapReduce 281
  • 10.8.1 Map 282
  • 10.8.2 Reduce 282
  • 10.8.3 Result 282
  • 10.8.4 Finalize 283
  • 10.8.5 Options 283
  • 10.9 索引 284
  • 10.9.1 基础索引 284
  • 10.9.2 文档索引 285
  • 10.9.3 组合索引 285
  • 10.9.4 唯一索引 285
  • 10.9.5 强制使用索引 286
  • 10.9.6 删除索引 287
  • 10.10 性能优化 287
  • 10.10.1 explain执行计划 287
  • 10.10.2 优化器Profile 288
  • 10.10.3 性能优化举例 289
  • 10.11 性能监控 290
  • 10.11.1 mongosniff 291
  • 10.11.2 Mongostat 292
  • 10.11.3 db.serverStatus 292
  • 10.11.4 db.stats 294
  • 10.11.5 第三方工具 294
  • 10.12 Replica Sets复制集 294
  • 10.12.1 部署Replica Sets 295
  • 10.12.2 主从操作日志oplog 297
  • 10.12.3 主从配置信息 298
  • 10.12.4 管理维护Replica Sets 299
  • 10.12.5 增减节点 301
  • 10.13 Sharding分片 305
  • 10.13.1 建立Sharding Cluster 306
  • 10.13.2 管理维护Sharding 308
  • 10.14 Replica Sets和Sharding的结合 313
  • 10.14.1 创建数据目录 314
  • 10.14.2 配置Replica Sets 314
  • 10.14.3 配置3台Route Process 316
  • 10.14.4 配置Shard Cluster 316
  • 10.14.5 验证Sharding正常工作 317
  • 第5篇 MySQL基础与性能优化
  • 第11章 MySQL基础 320
  • 11.1 CentOS 6.5下MySQL的安装 320
  • 11.2 MySQL基本命令 322
  • 11.3 MySQL数据类型 325
  • 11.3.1 整型 325
  • 11.3.2 浮点型 326
  • 11.3.3 定点数 326
  • 11.3.4 字符串(char,varchar,xxxtext) 326
  • 11.3.5 二进制数据 327
  • 11.3.6 日期时间类型 327
  • 11.3.7 数据类型的属性 327
  • 11.4 创建数据库和表 328
  • 11.5 检索表中的数据 331
  • 11.6 多个表的操作 334
  • 第12章 MySQL高级特性与性能优化 338
  • 12.1 MySQL Server系统架构 338
  • 12.1.1 逻辑模块组成 338
  • 12.1.2 各模块工作配合 341
  • 12.2 存储引擎 343
  • 12.2.1 MySQL存储引擎概述 343
  • 12.2.2 MyISAM存储引擎简介 344
  • 12.2.3 Innodb 存储引擎简介 346
  • 12.3 MySQL中的锁定机制 347
  • 12.3.1 MySQL中锁定机制概述 347
  • 12.3.2 合理利用锁机制优化MySQL 349
  • 12.4 索引与优化 350
  • 12.4.1 选择索引的数据类型 351
  • 12.4.2 索引入门 351
  • 12.4.3 索引的类型 352
  • 12.4.4 高性能的索引策略 353
  • 12.4.5 索引与加锁 358
  • 12.5 MySQL的MyISAM和Innodb的Cache优化 359
  • 12.5.1 MyISAM存储引擎的Cache优化 359
  • 12.5.2 Innodb缓存相关优化 362
  • 12.6 MySQL的复制 364
  • 12.6.1 复制对于可扩展性的意义 364
  • 12.6.2 复制的原理 365
  • 12.6.3 体验MySQL复制 366
  • 12.6.4 复制的常用拓扑结构 370
  • 12.7 可扩展性设计之数据切分 375
  • 12.7.1 何谓数据切分 375
  • 12.7.2 数据的垂直切分 375
  • 12.7.3 数据的水平切分 377
  • 12.7.4 垂直与水平联合切分的使用 379
  • 12.7.5 数据切分及整合方案 381
  • 12.7.6 数据切分与整合中可能存在的问题 386
  • 12.8 小结 388

资源下载

资源下载地址1:https://pan.baidu.com/s/1e4zpXimzY-ailD5SEJ7enQ

相关资源

网友留言