內容簡介
在大數據爆發的短短几年中,NoSQL成為處理大數據必須掌握的熱門的核心技術之一。《NoSQL資料庫入門與實踐(基於MongoDB、Redis)》正是在這種情況下應運而生,該書結合MongoDB、Redis和測試工具等全面介紹NoSQL資料庫技術、NoSQL精粹,是一本NoSQL資料庫入門圖書,也是NoSQL初學者了解NoSQL技術全貌的圖書。全書包括3部分,其中NoSQL基礎部分包括:初識NoSQL、TRDB與NoSQL的技術比較、NoSQL數據存儲模式。NoSQL實踐部分分別介紹了文檔資料庫MongoDB和鍵值資料庫Redis入門及提高知識,並通過兩個電商平台綜合案例詳細介紹了MongoDB和Redis在實現不同業務(如日誌存儲、商品評論、訂單信息記錄、點擊量存儲、商品推薦、購物車、記錄瀏覽商品行為等)功能模組開發過程中的具體套用。NoSQL提高部分介紹了大數據環境下MongoDB和Redis在操作速度和數據存儲方面的最佳化方法和處理技術,以及對NoSQL產品實際業務套用的選擇及部署和NoSQL輔助工具的套用。既可以讓讀者學好NoSQL基礎知識,掌握NoSQL資料庫技術,具備代碼實戰水平,又能培養讀者系統性考慮問題的能力,對有較高要求的讀者還給出了深入學習的方向和核心內容。
《NoSQL資料庫入門與實踐(基於MongoDB、Redis)》一書除紙質介紹外,前8章還提供了視頻講解,手機掃描二維碼即可觀看,並提供全書的原始碼,方便讀者快速學習。
《NoSQL資料庫入門與實踐(基於MongoDB、Redis)》一書語言通俗易懂,內容由淺入深,非常適合想全面了解NoSQL知識的高校學生、教師及相關IT工程師參考學習,也適合所有對NoSQL資料庫感興趣的技術人員閱讀。
圖書目錄
第1章初識NoSQL
1.1什麼是NoSQL
1.1.1引子
【套用案例1.1】12306網上訂火車票系統
【套用案例1.2】Hadoop的產生
1.1.2NoSQL相關概念
1.2資料庫分類
1.2.1TRDB資料庫
1.2.2NoSQL資料庫
1.2.3NewSQL資料庫
1.3學習幫助
1.3.1學習資料
1.3.2學習建議
1.4小結
1.5練習
第2章TRDB與NoSQL的技術比較
2.1硬體運行原理
2.1.1單機的局限性
2.1.2伺服器的縱橫擴充
2.2軟體實現技術比較
2.2.1數據存儲結構更加簡單
2.2.2引入分散式技術架構
【套用案例2.1】CAP故障模式下的3種情況
2.2.3事務
【套用案例2.2】BASE在電子商務中的套用
2.2.4SQL技術標準
2.2.5分析技術
2.3小結
2.4練習
第3章NoSQL數據存儲模式
3.1鍵值數據存儲模式
3.1.1鍵值存儲實現
3.1.2鍵值存儲特點
3.1.3套用實例
【套用案例3.1】Amazon Simple Storage Service,S
【套用案例3.2】Redis國內套用情況
3.2文檔數據存儲模式
3.2.1文檔存儲實現
3.2.2文檔存儲特點
3.2.3套用實例
【套用案例3.3】大都會人壽保險公司成功套用
【套用案例3.4】國內外部分成功案例用戶名單
3.3列族數據存儲模式
3.3.1列族存儲實現
3.3.2列族存儲特點
3.3.3套用實例
【套用案例3.5】Cassandra在Netflix公司的成功套用
3.4圖數據存儲模式
3.4.1圖存儲實現
3.4.2圖存儲特點
3.4.3套用實例
【套用案例3.6】Neo4j在eBay公司的成功套用
3.5其他數據存儲模式
3.5.1多模式資料庫
3.5.2對象資料庫
3.5.3格線和雲資料庫
3.5.4XML資料庫
3.5.5多維資料庫
3.5.6多值資料庫
3.5.7事件驅動資料庫
3.5.8時間序列/流資料庫
3.5.9其他NoSQL相關的資料庫
3.5.10科學、專業的資料庫
3.5.11未解決和歸類的資料庫
3.6小結
3.7練習
NoSQL實踐部分(電商大數據)
第4章文檔資料庫MongoDB入門
4.1MongoDB使用準備
4.1.1了解MongoDB
4.1.2MongoDB安裝
4.1.3資料庫建立基本規則
4.1.4資料庫建立
4.2MongoDB基本操作
4.2.1插入文檔
4.2.2查詢文檔
4.2.3更新文檔
4.2.4刪除文檔
4.2.5索引
4.2.6聚合
4.2.7複製
4.2.8分片
4.2.9寫出錯機制
4.3MongoDB常用配置參數
4.3.1網路配置
4.3.2存儲配置
4.4第一個簡單的案例
4.4.1用Java連線MongoDB
4.4.2生產級Java連線MongoDB公共架構
4.4.3高並發模擬
4.5小結
4.6實驗
第5章文檔資料庫MongoDB提高
5.1BASE操作
5.1.1單文檔原子性操作
5.1.2多文檔隔離性操作
5.2高級索引及索引限制
5.2.1高級索引
5.2.2索引限制
5.3查詢高級分析
5.3.1大規模記錄數據準備
5.3.2Explain( )分析
5.3.3Hint( )分析
5.4可視化管理工具
5.4.1RoboMongo管理工具
5.4.2其他可視化管理工具
5.5小結
5.6實驗
第6章MongoDB案例實戰(電商大數據)
6.1日誌存儲
6.1.1日誌使用需求
6.1.2建立數據集
6.1.3新增一個日誌
6.1.4查詢日誌信息
6.1.5查詢結果顯示
6.2商品評論
6.2.1商品評價使用需求
6.2.2建立數據集
6.2.3新增評價
6.2.4分頁查詢評價
6.2.5執行結果顯示
6.3用戶擴展信息管理
6.3.1用戶擴展信息使用需求
6.3.2建立數據集
6.3.3新增用戶擴展信息
6.3.4多條件查詢用戶擴展信息
6.3.5執行結果顯示
6.4訂單信息記錄
6.4.1訂單使用需求
6.4.2建立數據集
6.4.3新增訂單
6.4.4聚合查詢訂單數量
6.4.5執行結果顯示
6.5商品信息管理
6.5.1商品信息使用需求
6.5.2建立數據集
6.5.3新增商品
6.5.4查詢修改商品
6.5.5執行結果顯示
6.6歷史訂單
6.6.1歷史訂單使用需求
6.6.2建立數據集
6.6.3批量新增歷史訂單
6.6.4查詢歷史訂單
6.6.5執行結果顯示
6.7點擊量存儲
6.7.1點擊量需求描述
6.7.2建立數據集
6.7.3新增點擊量日誌
6.7.4查詢統計點擊量
6.7.5查詢結果展示
6.8小結
6.9實驗
第7章鍵值資料庫Redis入門
7.1使用準備
7.1.1了解Redis
7.1.2Redis安裝
7.1.3Redis-cli
7.1.4Redis存儲模式
7.2Redis命令
7.2.1字元串命令
7.2.2列表命令
7.2.3集合命令
7.2.4散列表命令
7.2.5有序集合命令
7.2.6發布訂閱命令
7.2.7連線命令
7.2.8Server操作命令
7.2.9腳本命令
7.2.10鍵命令
7.2.11HyperLogLog命令
7.2.12地理空間命令
7.2.13事務命令
7.2.14集群命令
7.3Redis配置及參數
7.3.1Config配置檔案
7.3.2配置檔案參數
7.4Java連線Redis資料庫
7.4.1Redis連線配置
7.4.2Redis初始化工具類
7.5小結
7.6實驗
第8章鍵值資料庫Redis提高
8.1管道
8.1.1管道技術原理
8.1.2基於Java的管道技術使用
8.2分散式集群
8.2.1集群安裝
8.2.2模擬節點故障
8.2.3加減節點
8.3Lua腳本套用
8.3.1Lua腳本使用基本知識
8.3.2Lua實現案例
8.4可視化管理工具
8.4.1Redis Desktop Manager
8.4.2Redis Client
8.4.3RedisStudio
8.4.4Redsmin/proxy
8.5小結
8.6實驗
第9章Redis案例實戰(電商大數據)
9.1廣告訪問
9.1.1廣告功能使用需求
9.1.2建立數據集
9.1.3新增廣告
9.1.4查詢廣告
9.2商品推薦
9.2.1商品推薦功能使用需求
9.2.2建立數據集
9.2.3新增商品推薦內容
9.2.4查詢商品記錄
9.3購物車
9.3.1購物車功能使用需求
9.3.2建立數據集
9.3.3加入購物車
9.3.4查詢購物車
9.4記錄瀏覽商品行為
9.4.1商品瀏覽記錄使用需求
9.4.2建立數據集
9.4.3新增商品點擊記錄
9.4.4查詢商品點擊記錄
9.5替代Session
9.5.1Session使用需求
9.5.2建立數據集
9.5.3新增Session
9.5.4查詢Session
9.6分頁快取
9.6.1分頁快取使用需求
9.6.2建立數據集
9.6.3新增分頁數據
9.6.4查詢分頁數據
9.7小結
9.8實驗
NoSQL提高部分(電商大數據)
第10章速度問題
10.1MongoDB操作速度最佳化
10.1.1常用最佳化方法
10.1.2索引查詢及最佳化
10.1.3數據設計及最佳化
10.1.4MongoDB讀寫分離
10.2Redis操作速度最佳化
10.2.1Redis讀寫分離
10.2.2記憶體配置最佳化
10.3配套硬體最佳化
10.4小結
10.5實驗
第11章數據存儲問題
11.1Mongodb數據存儲問題
11.1.1數據備份及恢復
11.1.2存儲平衡最佳化
11.2Redis數據存儲技術
11.2.1持久性問題
11.2.2數據備份問題
11.3小結
11.4實驗
第12章NoSQL選擇及部署
12.1NoSQL產品選擇
12.2複雜部署案例分析
12.2.1高可用性NoSQL部署
12.2.2TRDB+NoSQL綜合部署
12.3小結
12.4實驗
第13章NoSQL的實用輔助工具
13.1測試工具
13.1.1YCSB測試工具
13.1.2Redis-benchmark
13.2監控工具
13.2.1MongoDB監控工具及問題
13.2.2Mongostat
13.2.3Mongotop
13.2.4Mtools
13.2.5Cloudinsight
13.2.6Redis監控工具
13.2.7Redislive
13.2.8Sentinel
13.3小結
13.4實驗
附錄一MongoDB部分命令使用清單
附錄二Redis命令詳細清單
附錄三實例代碼清單
主要參考文獻及資料來源
後記