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(中國)高級技術顧問
現專職從事培訓工作