
掃描右側(cè)圖片或微信搜索 “ Java技術(shù)分享屋 ” ,回復(fù) “ 驗證碼 ” ,獲取驗證密碼。
本資料僅供讀者預(yù)覽及學(xué)習(xí)交流使用,不能用于商業(yè)用途,請在下載后24小時內(nèi)刪除。如果喜歡,請購買正版!
一.資料截圖
二.資料介紹
【官方網(wǎng)站】
本書的官方網(wǎng)站 www.RedisBook.com 提供了書本試讀、相關(guān)源碼下載和勘誤回報等服務(wù),歡迎讀者瀏覽和使用。
【編輯推薦】
系統(tǒng)而全面地描述了 Redis 內(nèi)部運行機制
圖示豐富,描述清晰,并給出大量參考信息,是NoSQL數(shù)據(jù)庫開發(fā)人員案頭必備
包括大部分Redis單機特征,以及所有多機特性
【讀者評價】
這本書描述的知識點很豐富,覆蓋很全,里面提到特性較多,有不少我們也沒用過 :) 每個命令內(nèi)部的機制的介紹很不錯,很多估計也是首次有詳細(xì)文檔介紹。
——楊衛(wèi)華(@TimYang)新浪微博技術(shù)總監(jiān)
近幾年Redis以其高性能、高靈活性的優(yōu)點,變得越來越流行。但很多人在使用Redis時,僅僅還是停留在比較表層的功能性認(rèn)識,缺乏對內(nèi)部機制原理的深入理解。本書是huangz同學(xué)長期對Redis源碼的閱讀心得結(jié)晶,書中對Redis的各個方面都進(jìn)行了詳細(xì)且深入的講解,將復(fù)雜的原理用最簡單的方式為大家解構(gòu)和講解,強烈推薦給每一位Redis的使用者閱讀。
—— iammutex,NoSQLFan站長,樂視網(wǎng)技術(shù)經(jīng)理
Redis 是近些年來特別火爆的 NoSQL 之一。縱觀中外各種書籍還沒有一本能對 Redis 內(nèi)部進(jìn)行深入剖析,《Redis 設(shè)計與實現(xiàn)》可謂開此先河。常和作者在網(wǎng)上交流,知道作者為這本書付出了大量的心血。這本書行文流暢,思路清晰,詳細(xì)地介紹了 Redis 源碼的方方面面。無論是想學(xué)習(xí) NoSQL、網(wǎng)絡(luò)編程的初學(xué)者,還是源碼控的進(jìn)階者,本書都會有很大的幫助。
—— 阮若夷,支付寶高級專家
【內(nèi)容簡介】
本書全面而完整地講解了Redis的內(nèi)部機制與實現(xiàn)方式,對Redis的大多數(shù)單機功能以及所有多機功能的實現(xiàn)原理進(jìn)行了介紹,展示了這些功能的核心數(shù)據(jù)結(jié)構(gòu)以及關(guān)鍵的算法思想,圖示豐富,描述清晰,并給出大量參考信息。通過閱讀本書,讀者可以快速、有效地了解Redis的內(nèi)部構(gòu)造以及運作機制,更好、更高效地使用Redis。
本書主要分為四大部分。第一部分“數(shù)據(jù)結(jié)構(gòu)與對象”介紹了Redis中的各種對象及其數(shù)據(jù)結(jié)構(gòu),并說明這些數(shù)據(jù)結(jié)構(gòu)如何影響對象的功能和性能。第二部分“單機數(shù)據(jù)庫的實現(xiàn)”對Redis實現(xiàn)單機數(shù)據(jù)庫的方法進(jìn)行了介紹,包括數(shù)據(jù)庫、RDB持久化、AOF持久化、事件等。第三部分“多機數(shù)據(jù)庫的實現(xiàn)”對Redis的Sentinel、復(fù)制、集群三個多機功能進(jìn)行了介紹。第四部分“獨立功能的實現(xiàn)”對Redis中各個相對獨立的功能模塊進(jìn)行了介紹,涉及發(fā)布與訂閱、事務(wù)、Lua腳本、排序、二進(jìn)制位數(shù)組、慢查詢?nèi)罩?、監(jiān)視器等。本書作者專門維護(hù)了www.redisbook.com網(wǎng)站,提供帶有詳細(xì)注釋的Redis源代碼,以及本書相關(guān)的更新內(nèi)容。
三.作者簡介
黃健宏 軟件開發(fā)者,他喜歡函數(shù)式編程,熱愛開源軟件。出于對數(shù)據(jù)庫的強烈興趣,他開始閱讀和分析 Redis 源代碼,并對 Redis 2.6 和 Redis 3.0 的源代碼進(jìn)行了詳細(xì)注釋。他翻譯并維護(hù)著 Redis 中文文檔網(wǎng)站 www.RedisDoc .com ,編寫 了 OORedis 庫。除此之外,他還是《Redis in Action》一書的譯者。
四.資料目錄
第1章 引言 1
1.1 Redis版本說明 1
1.2 章節(jié)編排 1
1.3 推薦的閱讀方法 4
1.4 行文規(guī)則 4
1.5 配套網(wǎng)站 5
第一部分 數(shù)據(jù)結(jié)構(gòu)與對象
第2章 簡單動態(tài)字符串 8
2.1 SDS的定義 9
2.2 SDS與C字符串的區(qū)別 10
2.3 SDS API 17
2.4 重點回顧 18
2.5 參考資料 18
第3章 鏈表 19
3.1 鏈表和鏈表節(jié)點的實現(xiàn) 20
3.2 鏈表和鏈表節(jié)點的API 21
3.3 重點回顧 22
第4章 字典 23
4.1 字典的實現(xiàn) 24
4.2 哈希算法 27
4.3 解決鍵沖突 28
4.4 rehash 29
4.5 漸進(jìn)式rehash 32
4.6 字典API 36
4.7 重點回顧 37
第5章 跳躍表 38
5.1 跳躍表的實現(xiàn) 39
5.2 跳躍表API 44
5.3 重點回顧 45
第6章 整數(shù)集合 46
6.1 整數(shù)集合的實現(xiàn) 46
6.2 升級 48
6.3 升級的好處 50
6.4 降級 51
6.5 整數(shù)集合API 51
6.6 重點回顧 51
第7章 壓縮列表 52
7.1 壓縮列表的構(gòu)成 52
7.2 壓縮列表節(jié)點的構(gòu)成 54
7.3 連鎖更新 57
7.4 壓縮列表API 59
7.5 重點回顧 59
第8章 對象 60
8.1 對象的類型與編碼 60
8.2 字符串對象 64
8.3 列表對象 68
8.4 哈希對象 71
8.5 集合對象 75
8.6 有序集合對象 77
8.7 類型檢查與命令多態(tài) 81
8.8 內(nèi)存回收 84
8.9 對象共享 85
8.10 對象的空轉(zhuǎn)時長 87
8.11 重點回顧 88
第二部分 單機數(shù)據(jù)庫的實現(xiàn)
第9章 數(shù)據(jù)庫 90
9.1 服務(wù)器中的數(shù)據(jù)庫 90
9.2 切換數(shù)據(jù)庫 91
9.3 數(shù)據(jù)庫鍵空間 93
9.4 設(shè)置鍵的生存時間或過期時間 99
9.5 過期鍵刪除策略 107
9.6 Redis的過期鍵刪除策略 108
9.7 AOF、RDB和復(fù)制功能對過期鍵的處理 111
9.8 數(shù)據(jù)庫通知 113
9.9 重點回顧 117
第10章 RDB持久化 118
10.1 RDB 文件的創(chuàng)建與載入 119
10.2 自動間隔性保存 121
10.3 RDB 文件結(jié)構(gòu) 125
10.4 分析RDB文件 133
10.5 重點回顧 137
10.6 參考資料 137
第11章 AOF持久化 138
11.1 AOF持久化的實現(xiàn) 139
11.2 AOF文件的載入與數(shù)據(jù)還原 142
11.3 AOF重寫 143
11.4 重點回顧 150
第12章 事件 151
12.1 文件事件 151
12.2 時間事件 156
12.3 事件的調(diào)度與執(zhí)行 159
12.4 重點回顧 161
12.5 參考資料 161
第13章 客戶端 162
13.1 客戶端屬性 163
13.2 客戶端的創(chuàng)建與關(guān)閉 172
13.3 重點回顧 174
第14章 服務(wù)器 176
14.1 命令請求的執(zhí)行過程 176
14.2 serverCron函數(shù) 184
14.3 初始化服務(wù)器 192
14.4 重點回顧 196
第三部分 多機數(shù)據(jù)庫的實現(xiàn)
第15章 復(fù)制 198
15.1 舊版復(fù)制功能的實現(xiàn) 199
15.2 舊版復(fù)制功能的缺陷 201
15.3 新版復(fù)制功能的實現(xiàn) 203
15.4 部分重同步的實現(xiàn) 204
15.5 PSYNC 命令的實現(xiàn) 209
15.6 復(fù)制的實現(xiàn) 211
15.7 心跳檢測 216
15.8 重點回顧 218
第16章 Sentinel 219
16.1 啟動并初始化Sentinel 220
16.2 獲取主服務(wù)器信息 227
16.3 獲取從服務(wù)器信息 229
16.4 向主服務(wù)器和從服務(wù)器發(fā)送信息 230
16.5 接收來自主服務(wù)器和從服務(wù)器的頻道信息 231
16.6 檢測主觀下線狀態(tài) 234
16.7 檢查客觀下線狀態(tài) 236
16.8 選舉領(lǐng)頭Sentinel 238
16.9 故障轉(zhuǎn)移 240
16.10 重點回顧 243
16.11 參考資料 244
第17章 集群 245
17.1 節(jié)點 245
17.2 槽指派 251
17.3 在集群中執(zhí)行命令 258
17.4 重新分片 265
17.5 ASK錯誤 267
17.6 復(fù)制與故障轉(zhuǎn)移 273
17.7 消息 281
17.8 重點回顧 288
第四部分 獨立功能的實現(xiàn)
第18章 發(fā)布與訂閱 290
18.1 頻道的訂閱與退訂 292
18.2 模式的訂閱與退訂 295
18.3 發(fā)送消息 298
18.4 查看訂閱信息 300
18.5 重點回顧 303
18.6 參考資料 304
第19章 事務(wù) 305
19.1 事務(wù)的實現(xiàn) 306
19.2 WATCH 命令的實現(xiàn) 310
19.3 事務(wù)的ACID 性質(zhì) 314
19.4 重點回顧 319
19.5 參考資料 320
第20章 Lua腳本 321
20.1 創(chuàng)建并修改Lua 環(huán)境 322
20.2 Lua 環(huán)境協(xié)作組件 327
20.3 EVAL命令的實現(xiàn) 329
20.4 EVALSHA 命令的實現(xiàn) 332
20.5 腳本管理命令的實現(xiàn) 333
20.6 腳本復(fù)制 336
20.7 重點回顧 342
20.8 參考資料 343
第21章 排序 344
21.1 SORT <key> 命令的實現(xiàn) 345
21.2 ALPHA 選項的實現(xiàn) 347
21.3 ASC 選項和DESC 選項的實現(xiàn) 348
21.4 BY選項的實現(xiàn) 350
21.5 帶有ALPHA 選項的BY 選項的實現(xiàn) 352
21.6 LIMIT 選項的實現(xiàn) 353
21.7 GET選項的實現(xiàn) 355
21.8 STORE 選項的實現(xiàn) 358
21.9 多個選項的執(zhí)行順序 359
21.10 重點回顧 361
第22章 二進(jìn)制位數(shù)組 362
22.1 位數(shù)組的表示 363
22.2 GETBIT命令的實現(xiàn) 365
22.3 SETBIT 命令的實現(xiàn) 366
22.4 BITCOUNT 命令的實現(xiàn) 369
22.5 BITOP 命令的實現(xiàn) 376
22.6 重點回顧 377
22.7 參考資料 377
第23章 慢查詢?nèi)罩?378
23.1 慢查詢記錄的保存 380
23.2 慢查詢?nèi)罩镜拈営[和刪除 382
23.3 添加新日志 383
23.4 重點回顧 385
第24章 監(jiān)視器 386
24.1 成為監(jiān)視器 387
24.2 向監(jiān)視器發(fā)送命令信息 387
24.3 重點回顧 388