NoSQL数据库实战派(Redis+MongoDB+HBase) 版权信息
- ISBN:9787121443404
- 条形码:9787121443404 ; 978-7-121-44340-4
- 装帧:一般胶版纸
- 册数:暂无
- 重量:暂无
- 所属分类:>
NoSQL数据库实战派(Redis+MongoDB+HBase) 本书特色
绕不过的NoSQL,一本书掌握。包含以下内容:基于内存的NoSQL数据库——Redis;基于文档的NoSQL数据库——MongoDB;列式存储NoSQL数据库——HBase(1)覆盖了3种技术。
(2)主线清晰,循序渐进。
(3)突出实战,注重效果。
(4)深入原理,关注难点和易错点。
NoSQL数据库实战派(Redis+MongoDB+HBase) 内容简介
本书介绍了NoSQL数据库生态圈体系,包括Redis、MongoDB和HBase,内容涉及开发、运维、管理与架构。“第1篇 基于内存的NoSQL数据库”(第1~5章)包括:内存对象缓存技术Memcached、Redis基础、Redis高级特性及原理、Redis集群与高可用和Redis故障诊断与优化。“第2篇 基于文档的NoSQL数据库”(第6~10章)包括:MongoDB基础、操作MongoDB的数据、MongoDB的数据建模、MongoDB的管理和MongoDB的集群。“第3篇 列式存储NoSQL数据库”(第11~15章)包括:HBase基础、部署与操作HBase、HBase原理剖析、HBase的高级特性和监控与优化HBase集群。
NoSQL数据库实战派(Redis+MongoDB+HBase) 目录
第1篇 基于内存的NoSQL数据库
第1章 内存对象缓存技术Memcached /2
1.1 Memcached基础 /2
1.1.1 Memcached的体系架构 /2
1.1.2 Memcached的数据存储方式 /3
1.2 使用Memcached在内存中缓存数据 /3
1.2.1 【实战】在CentOS上部署Memcached /4
1.2.2 【实战】使用Telnet操作Memcached /6
1.2.3 【实战】使用Java操作Memcached /10
1.2.4 【实战】实现Memcached的客户端路由 /12
1.3 Memcached集群 /16
1.3.1 【实战】部署Memcached的“主主复制”集群 /16
1.3.2 【实战】使用KeepAlived实现Memcached的高可用 /19
第2章 Redis基础 /25
2.1 Redis入门 /25
2.1.1 缓存的架构 /26
2.1.2 Redis的优势 /27
2.1.3 Redis与其他Key-Value数据库有何不同 /27
2.1.4 一个典型的Redis应用案例――记录用户的登录次数,查询活跃用户 /27
2.2 Redis的安装和访问 /29
2.3 Redis的数据结构 /32
2.3.1 简单动态字符串 /32
2.3.2 跳跃表 /33
2.3.3 压缩列表 /35
2.3.4 整数集合 /36
2.3.5 字典 /37
2.3.6 快表 /38
2.3.7 Stream /40
2.3.8 HyperLogLog /42
2.3.9 RedisObject /43
2.4 Redis的存储结构 /43
2.5 键管理 /45
2.5.1 键管理的基本操作 /45
2.5.2 【实战】遍历键 /49
2.5.3 【实战】迁移键 /53
第3章 Redis高级特性及原理 /56
3.1 消息的发布与订阅 /56
3.1.1 “发布者-订阅者”模式 /56
3.1.2 “生产者-消费者”模式 /59
3.2 Redis的事务 /60
3.2.1 【实战】使用命令操作Redis的事务 /61
3.2.2 【实战】在事务操作中使用watch功能 /61
3.2.3 【实战】使用Java API操作Redis的事务 /62
3.3 数据持久化 /63
3.3.1 RDB持久化 /63
3.3.2 AOF持久化 /66
3.4 使用PipeLine优化请求的传递 /69
3.5 慢查询日志 /71
3.5.1 慢查询的配置参数 /72
3.5.2 【实战】管理和使用慢查询日志 /73
3.5.3 慢查询日志*佳实践 /74
3.6 Lua脚本编程语言 /75
3.6.1 Lua基础 /75
3.6.2 【实战】使用Lua脚本实现限流 /76
第4章 Redis集群与高可用 /79
4.1 Redis主从复制 /79
4.1.1 部署Redis主从复制 /80
4.1.2 Redis主从复制的源码剖析 /82
4.2 基于哨兵的高可用架构 /84
4.2.1 部署Redis哨兵 /84
4.2.2 哨兵的主要配置参数 /86
4.2.3 哨兵的工作原理 /87
4.3 Redis Cluster集群 /90
4.3.1 什么是Redis Cluster集群 /90
4.3.2 Redis Cluster集群的体系架构 /90
4.3.3 部署Redis Cluster集群 /92
4.3.4 【实战】操作与管理Redis Cluster集群 /96
4.3.5 【实战】实现Redis Cluster集群的代理分片 /101
4.4 Codis集群 /103
4.4.1 Codis集群的体系架构 /104
4.4.2 部署Codis集群 /105
4.4.3 【实战】基于Codis集群的主从复制 /109
4.4.4 【实战】基于Codis集群的数据分布式存储 /112
第5章 Redis故障诊断与优化 /115
5.1 监控Redis /115
5.1.1 监控Redis的内存 /115
5.1.2 监控Redis的吞吐量 /116
5.1.3 监控Redis的运行时信息 /116
5.1.4 监控Redis的延时 /117
5.2 删除策略和淘汰策略 /120
5.2.1 内存的删除策略 /120
5.2.2 内存的淘汰策略 /122
5.3 Hot Key /124
5.3.1 监控Hot Key /124
5.3.2 Hot Key的常见处理办法 /125
5.4 Big Key /125
5.5 缓存的更新策略 /126
5.5.1 “maxmemory-policy更新”策略 /126
5.5.2 “超时更新”策略 /126
5.5.3 “主动更新”策略 /126
5.6 缓存与数据库的数据一致性 /127
5.6.1 数据一致性案例分析 /127
5.6.2 延时双删策略 /128
5.6.3 异步更新缓存 /129
5.7 分布式锁 /129
5.8 Redis缓存的常见问题 /131
5.8.1 提高缓存命中率 /131
5.8.2 缓存预热 /131
5.8.3 缓存穿透 /132
5.8.4 缓存雪崩 /132
5.8.5 缓存击穿 /133
==第2篇 基于文档的NoSQL数据库
第6章 MongoDB基础 /136
6.1 MongoDB简介 /136
6.2 部署和使用MongoDB /137
6.2.1 【实战】在CentOS上安装MongoDB 5.0 /137
6.2.2 【实战】使用配置文件启动MongoDB服务器 /139
6.2.3 【实战】使用JavaScript命令行工具mongoshell /141
6.2.4 【实战】使用MongoDB图形化工具MongoDB Compass /145
6.3 MongoDB中的数据类型 /148
6.3.1 ObjectId类型 /148
6.3.2 日期类型 /149
6.3.3 数值类型 /149
6.3.4 其他数据类型 /151
6.4 MongoDB的体系结构 /152
6.4.1 逻辑存储结构 /152
6.4.2 物理存储结构 /153
6.5 MongoDB的存储引擎 /154
6.5.1 WiredTiger存储引擎 /154
6.5.2 MMAP v1存储引擎 /159
6.5.3 In-Memory存储引擎 /161
6.6 MongoDB的日志――Journal日志 /163
第7章 操作MongoDB中的数据 /164
7.1 使用DML语句操作数据 /164
7.1.1 使用insert语句插入文档 /164
7.1.2 使用update语句更新文档 /166
7.1.3 使用delete语句删除文档 /167
7.1.4 批处理操作 /168
7.2 使用DQL语句查询数据 /169
7.2.1 【实战】基本查询 /169
7.2.2 【实战】查询嵌套的文档 /171
7.2.3 【实战】查询数组中的文档 /173
7.2.4 【实战】查询数组中嵌套的文档 /174
7.2.5 【实战】查询空值和缺失的列 /175
7.2.6 【实战】使用游标查询文档 /176
7.3 全文检索 /177
7.3.1 【实战】执行全文索引 /178
7.3.2 【实战】在全文检索中聚合数据 /179
7.4 地理空间查询 /181
7.5 聚合操作 /182
7.5.1 【实战】使用Pipeline方式聚合数据 /182
7.5.2 【实战】使用MapReduce方式聚合数据 /184
7.6 MongoDB中的事务 /189
第8章 MongoDB的数据建模 /190
8.1 数据库建模基础 /190
8.1.1 MongoDB的数据建模方式 /190
8.1.2 验证MongoDB的数据文档 /191
8.2 MongoDB数据模型设计 /195
8.2.1 文档的“一对一”关系模型 /195
8.2.2 文档的“一对多”关系模型 /196
8.2.3 文档的树型模型 /196
8.3 使用MongoDB的索引 /201
8.3.1 了解索引 /201
8.3.2 了解MongoDB中的索引 /202
8.3.3 【实战】在查询中使用单键索引 /205
8.3.4 【实战】在查询中使用多键索引 /206
8.3.5 【实战】在查询中使用复合索引 /207
8.3.6 【实战】在查询中使用过期索引 /210
8.3.7 【实战】在查询中使用全文索引 /212
8.3.8 【实战】在查询中使用地理空间索引 /213
第9章 MongoDB的管理 /216
9.1 管理MongoDB的运行 /216
9.1.1 【实战】启动MongoDB服务器 /216
9.1.2 【实战】停止MongoDB服务器 /218
9.2 MongoDB的安全机制 /219
9.2.1 了解MongoDB的用户认证机制 /219
9.2.2 【实战】启用MongoDB的用户认证机制 /219
9.2.3 【实战】在MongoDB中进行用户管理 /221
9.3 基于角色的访问控制 /223
9.3.1 了解MongoDB中的角色 /223
9.3.2 【实战】基于角色控制用户的访问 /224
9.4 MongoDB的审计功能 /227
9.4.1 与审计相关的参数 /227
9.4.2 【实战】审计功能举例 /227
9.5 监控MongoDB的运行 /229
9.5.1 【实战】通过命令行工具监控MongoDB /229
9.5.2 【实战】通过可视化工具Compass监控MongoDB /232
9.6 MongoDB的数据安全 /232
9.6.1 【实战】导入/导出MongoDB的数据 /232
9.6.2 【实战】备份/恢复MongoDB的数据 /235
第10章 MongoDB的集群 /238
10.1 基于MongoDB复制集实现主从 同步 /238
10.1.1 MongoDB复制集基础 /238
10.1.2 部署MongoDB复制集 /240
10.1.3 管理MongoDB复制集 /247
10.1.4 【实战】MongoDB复制集的选举机制 /253
10.1.5 【实战】Oplog日志和数据的同步 /255
10.1.6 【实战】MongoDB的事务 /257
10.2 基于MongoDB分片实现数据的分布式存储 /261
10.2.1 MongoDB分片架构 /261
10.2.2 【实战】搭建MongoDB分片架构 /262
10.2.3 【实战】查看配置服务器 /268
10.2.4 片键的选择 /270
==第3篇 列式存储NoSQL数据库
第11章 HBase基础 /274
11.1 大数据基础 /274
11.1.1 大数据的基本概念和特性 /274
11.1.2 大数据平台要解决的核心问题 /276
11.1.3 数据仓库与大数据 /278
11.1.4 Hadoop生态圈 /279
11.2 BigTable(大表)与HBase的数据模型 /281
11.3 HBase的体系架构 /283
11.3.1 HMaster /284
11.3.2 Region Server /284
11.3.3 ZooKeeper /285
11.4 部署Hadoop环境 /286
11.4.1 部署前的准备 /287
11.4.2 Hadoop的目录结构 /289
11.4.3 【实战】部署Hadoop伪分布模式 /290
11.4.4 【实战】部署Hadoop全分布模式 /295
第12章 部署与操作HBase /299
12.1 在Linux上部署HBase环境 /299
12.1.1 部署HBase的本地模式 /299
12.1.2 部署HBase的伪分布模式 /301
12.1.3 部署HBase的全分布模式 /303
12.1.4 部署HBase的高可用模式 /305
12.2 使用命令行操作HBase /307
12.2.1 【实战】基础操作 /307
12.2.2 【实战】DDL操作 /308
12.2.3 【实战】DML操作 /311
12.3 HBase的Java API /313
12.3.1 【实战】使用Java API操作HBase /313
12.3.2 【实战】使用HBase的过滤器过滤数据 /317
12.3.3 【实战】使用MapReduce处理存储在HBase中的数据 /322
12.4 HBase的图形工具――Web控制台 /325
第13章 HBase原理剖析 /327
13.1 了解HBase的存储结构 /327
13.1.1 HBase的逻辑存储结构 /328
13.1.2 HBase的物理存储结构 /329
13.1.3 LSM树与Compaction机制 /333
13.2 HBase读数据的流程 /335
13.2.1 meta表与读取过程 /335
13.2.2 读合并与读放大 /337
13.3 HBase写数据的流程 /338
13.4 负载均衡和数据分发的*基本单元Region的管理 /339
13.4.1 Region的状态 /339
13.4.2 Region的拆分 /341
13.4.3 Region的合并 /342
13.4.4 Region拆分的影响 /342
13.5 HBase的内存刷新策略 /343
13.5.1 Region Server级别的刷新策略 /343
13.5.2 Region级别的刷新策略 /344
13.5.3 按照时间决定的刷新策略 /345
13.5.4 依据WAL文件数量的刷新策略 /345
13.6 了解HBase的Rowkey /346
13.6.1 Rowkey的设计原则 /346
13.6.2 HBase表的热点 /347
第14章 HBase的高级特性 /348
14.1 【实战】使用多版本保存数据 /348
14.2 【实战】使用HBase的快照 /350
14.3 【实战】使用Bulk Loading方式导入数据 /352
14.4 HBase的访问控制 /354
14.4.1 了解HBase的用户权限管理 /354
14.4.2 【实战】HBase的用户权限管理 /355
14.5 备份HBase的数据 /357
14.5.1 【实战】使用Export/Import备份数据 /358
14.5.2 【实战】使用CopyTable备份数据 /360
14.6 HBase的计数器 /361
14.6.1 【实战】在hbase shell中使用计数器 /361
14.6.2 【实战】在Java API中使用单计数器 /362
14.6.3 【实战】在Java API中使用多计数器 /363
14.7 布隆过滤器 /364
14.7.1 布隆过滤器的工作原理 /365
14.7.2 HBase中的布隆过滤器 /366
14.8 【实战】HBase的主从复制 /366
14.9 在HBase中使用SQL /368
14.9.1 安装和使用Phoenix /369
14.9.2 Phoenix与HBase的映射关系 /371
14.9.3 Phoenix中的索引 /372
14.9.4 【实战】通过JDBC程序访问Phoniex中的数据 /376
第15章 监控与优化HBase集群 /380
15.1 HBase集群的监控指标 /380
15.1.1 主机监控指标 /381
15.1.2 JVM监控指标 /381
15.1.3 HMaster监控指标 /383
15.1.4 Region Server监控指标 /384
15.2 利用可视化工具监控HBase集群 /387
15.2.1 【实战】使用Ganglia监控HBase集群 /387
15.2.2 【实战】使用JConsole监控HBase集群 /391
15.2.3 【实战】使用JVisualVM监控HBase集群 /394
15.3 HBase集群的优化 /397
15.3.1 优化HBase的数据管理 /397
15.3.2 优化HBase的客户端 /401
15.3.3 优化HBase的配置 /402
展开全部
NoSQL数据库实战派(Redis+MongoDB+HBase) 作者简介
赵渝强
曾任京东大学大数据学院院长、Oracle(中国)高级技术顾问
现专职从事培训工作