1. 程式人生 > 其它 >Redis設計與實現 原文高清PDF 下載

Redis設計與實現 原文高清PDF 下載

獲取方式: https://pan.baidu.com/s/17GgLaNeqZY7VlCBoiu-ehA 密碼: 6wtr

《Redis設計與實現》對Redis的大多數單機功能以及所有多機功能的實現原理進行了介紹,展示了這些功能的核心資料結構以及關鍵的演算法思想。通過閱讀本書,讀者可以快速、有效地瞭解Redis的內部構造以及運作機制,這些知識可以幫助讀者更好、更高效地使用Redis。本書主要分為四大部分。第一部分“資料結構與物件”介紹了Redis中的各種物件及其資料結構,並說明這些資料結構如何影響物件的功能和效能。第二部分“單機資料庫的實現”對Redis實現單機資料庫的方法進行了介紹,包括資料庫、RDB持久化、AOF持久化、事件等。第三部分“多機資料庫的實現”對Redis的Sentinel、複製(replication)、叢集(cluster)三個多機功能進行了介紹。第四部分“獨立功能的實現”對Redis中各個相對獨立的功能模組進行了介紹,涉及釋出與訂閱、事務、Lua指令碼、排序、二進位制位陣列、慢查詢日誌、監視器等。

目錄
前言
致謝
第1章 引言 1
1.1 Redis版本說明 1
1.2 章節編排 1
1.3 推薦的閱讀方法 4
1.4 行文規則 4
1.5 配套網站 5


第一部分·資料結構與物件
第2章 簡單動態字串 8
2.1 SDS的定義 9
2.2 SDS與C字串的區別 10
2.3 SDS API 17
2.4 重點回顧 18
2.5 參考資料 18
第3章 連結串列 19
3.1 連結串列和連結串列節點的實現 20
3.2 連結串列和連結串列節點的API 21
3.3 重點回顧 22
第4章 字典 23
4.1 字典的實現 24
4.2 雜湊演算法 27
4.3 解決鍵衝突 28
4.4 rehash 29
4.5 漸進式rehash 32
4.6 字典API 36
4.7 重點回顧 37
第5章 跳躍表 38
5.1 跳躍表的實現 39
5.2 跳躍表API 44
5.3 重點回顧 45
第6章 整數集合 46
6.1 整數集合的實現 46
6.2 升級 48
6.3 升級的好處 50
6.4 降級 51
6.5 整數集合API 51
6.6 重點回顧 51
第7章 壓縮列表 52
7.1 壓縮列表的構成 52
7.2 壓縮列表節點的構成 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 型別檢查與命令多型 81
8.8 記憶體回收 84
8.9 物件共享 85
8.10 物件的空轉時長 87
8.11 重點回顧 88


第二部分·單機資料庫的實現
第9章 資料庫 90
9.1 伺服器中的資料庫 90
9.2 切換資料庫 91
9.3 資料庫鍵空間 93
9.4 設定鍵的生存時間或過期時間 99
9.5 過期鍵刪除策略 107
9.6 Redis的過期鍵刪除策略 108
9.7 AOF、RDB和複製功能對過期鍵的處理 111
9.8 資料庫通知 113
9.9 重點回顧 117
第10章 RDB持久化 118
10.1 RDB 檔案的建立與載入 119
10.2 自動間隔性儲存 121
10.3 RDB 檔案結構 125
10.4 分析RDB檔案 133
10.5 重點回顧 137
10.6 參考資料 137
第11章 AOF持久化 138
11.1 AOF持久化的實現 139
11.2 AOF檔案的載入與資料還原 142
11.3 AOF重寫 143
11.4 重點回顧 150
第12章 事件 151
12.1 檔案事件 151
12.2 時間事件 156
12.3 事件的排程與執行 159
12.4 重點回顧 161
12.5 參考資料 161
第13章 客戶端 162
13.1 客戶端屬性 163
13.2 客戶端的建立與關閉 172
13.3 重點回顧 174
第14章 伺服器 176
14.1 命令請求的執行過程 176
14.2 serverCron函式 184
14.3 初始化伺服器 192
14.4 重點回顧 196


第三部分·多機資料庫的實現
第15章 複製 198
15.1 舊版複製功能的實現 199
15.2 舊版複製功能的缺陷 201
15.3 新版複製功能的實現 203
15.4 部分重同步的實現 204
15.5 PSYNC 命令的實現 209
15.6 複製的實現 211
15.7 心跳檢測 216
15.8 重點回顧 218
第16章 Sentinel 219
16.1 啟動並初始化Sentinel 220
16.2 獲取主伺服器資訊 227
16.3 獲取從伺服器資訊 229
16.4 向主伺服器和從伺服器傳送資訊 230
16.5 接收來自主伺服器和從伺服器的頻道資訊 231
16.6 檢測主觀下線狀態 234
16.7 檢查客觀下線狀態 236
16.8 選舉領頭Sentinel 238
16.9 故障轉移 240
16.10 重點回顧 243
16.11 參考資料 244
第17章 叢集 245
17.1 節點 245
17.2 槽指派 251
17.3 在叢集中執行命令 258
17.4 重新分片 265
17.5 ASK錯誤 267
17.6 複製與故障轉移 273
17.7 訊息 281
17.8 重點回顧 288


第四部分·獨立功能的實現
第18章 釋出與訂閱 290
18.1 頻道的訂閱與退訂 292
18.2 模式的訂閱與退訂 295
18.3 傳送訊息 298
18.4 檢視訂閱資訊 300
18.5 重點回顧 303
18.6 參考資料 304
第19章 事務 305
19.1 事務的實現 306
19.2 WATCH 命令的實現 310
19.3 事務的ACID 性質 314
19.4 重點回顧 319
19.5 參考資料 320
第20章 Lua指令碼 321
20.1 建立並修改Lua 環境 322
20.2 Lua 環境協作元件 327
20.3 EVAL命令的實現 329
20.4 EVALSHA 命令的實現 332
20.5 指令碼管理命令的實現 333
20.6 指令碼複製 336
20.7 重點回顧 342
20.8 參考資料 343
第21章 排序 344
21.1 SORT 命令的實現 345
21.2 ALPHA 選項的實現 347
21.3 ASC 選項和DESC 選項的實現 348
21.4 BY選項的實現 350
21.5 帶有ALPHA 選項的BY 選項的實現 352
21.6 LIMIT 選項的實現 353
21.7 GET選項的實現 355
21.8 STORE 選項的實現 358
21.9 多個選項的執行順序 359
21.10 重點回顧 361
第22章 二進位制位陣列 362
22.1 位陣列的表示 363
22.2 GETBIT命令的實現 365
22.3 SETBIT 命令的實現 366
22.4 BITCOUNT 命令的實現 369
22.5 BITOP 命令的實現 376
22.6 重點回顧 377
22.7 參考資料 377
第23章 慢查詢日誌 378
23.1 慢查詢記錄的儲存 380
23.2 慢查詢日誌的閱覽和刪除 382
23.3 新增新日誌 383
23.4 重點回顧 385
第24章 監視器 386
24.1 成為監視器 387
24.2 向監視器傳送命令資訊 387
24.3 重點回顧 388