NoSQL数据库实战派 Redis+MongoDB+HBase
全新正版 假一赔十 可开发票
¥
76.03
6.4折
¥
118
全新
库存8件
作者赵渝强
出版社电子工业出版社
ISBN9787121443404
出版时间2022-10
装帧平装
开本16开
定价118元
货号1202746581
上书时间2024-12-13
商品详情
- 品相描述:全新
- 商品描述
-
作者简介
"赵渝强
近20年IT行业从业经历,清华大学计算机软件工程专业毕业,华为认证讲师
曾担任京东大学大数据学院院长,Oracle中国有限公司高级技术顾问
精通大数据、数据库、中间件技术和Java技术"
目录
第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 【实战】使用ExportImport备份数据 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
……
内容摘要
本书介绍了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数据库感兴趣的平台架构师、运维管理人员和项目开发人员,读者只需要具备Linux基础和SQL基础,就能够通过本书快速掌握NoSQL数据库。
主编推荐
"(1)覆盖了3种技术。
(2)主线清晰,循序渐进。
(3)突出实战,注重效果。
(4)深入原理,关注难点和易错点。"
— 没有更多了 —
以下为对购买帮助不大的评价