





9
880792
查詢門市庫存
用超高速C語言解析Unix下Redis程式及完整執行過程
一次精通Redis、UNIX程式設計、分散式系統、儲存系統
一次精通Redis、UNIX程式設計、分散式系統、儲存系統
內容簡介
用超高速C語言解析Unix下Redis程式及完整執行過程
一次精通Redis、UNIX程式設計、分散式系統、儲存系統
▍本書主要內容
本書深入分析了Redis的實現原理,所以並不是Redis的入門書。為了儘量降低閱讀難度,本書複習了Redis各個核心功能的實現原理,提取了Redis核心程式(本書會儘量避免堆積程式),並以適量圖文,對Redis原始程式及其實現原理進行詳細分析,介紹Redis核心功能的設計思想和實現流程。
雖然本書的大部分內容是對Redis原始程式的分析,但是並不複雜,即使讀者只是簡單了解C語言的基礎語法,也可以輕鬆讀懂。
另外,本書結合Redis目前的最新版本6,分析了Redis最新特性,如Redis 6的ACL、Tracking等機制。為了照顧對Redis最新特性不熟悉的讀者,這部分內容提供了詳細的應用範例,幫助讀者循序漸進、由淺到深地學習和了解Redis最新特性。
本書也不侷限於Redis,而是由Redis延展出了兩方面內容:
(1)Redis中使用的UNIX機制,包括UNIX網路程式設計、執行緒同步等內容,本書會 透過原始程式展示Redis如何使用這些UNIX機制。
(2)如何透過Redis實現一個分散式系統,主要是Sentinel、Cluster機制的實現原理。
本書使用的原始程式版本是Redis 6,本書提供的Redis操作案例,如無特殊說明,也是在Redis 6版本上執行的操作實例。
▍本書特點
.分析Redis的字串、清單、雜湊、集合這幾種資料類型的編碼格式。
.介紹Redis事件機制與命令執行過程。
.利用I/O重複使用模型,實現事件循環機制。
.說明Redis持久化與複製機制。
.檔案持久化、從節點複製,透過將資料複製到不同備份中,從而保持資料安全。
.使用RDB、AOF持久化機制,以及主從節點複製流程等。
.Redis分散式架構,從流行的分散式演算法Raft出發,分析Sentinel監控節點,Cluster叢集實現資料分片,支援動態新增、刪除叢集節點,以及容錯移轉。
.說明Redis中的進階特性,包括Redis交易、非阻塞刪除、ACL存取控制清單、Tracking機制、Lua指令稿、Module模組、Stream訊息流等內容。
一次精通Redis、UNIX程式設計、分散式系統、儲存系統
▍本書主要內容
本書深入分析了Redis的實現原理,所以並不是Redis的入門書。為了儘量降低閱讀難度,本書複習了Redis各個核心功能的實現原理,提取了Redis核心程式(本書會儘量避免堆積程式),並以適量圖文,對Redis原始程式及其實現原理進行詳細分析,介紹Redis核心功能的設計思想和實現流程。
雖然本書的大部分內容是對Redis原始程式的分析,但是並不複雜,即使讀者只是簡單了解C語言的基礎語法,也可以輕鬆讀懂。
另外,本書結合Redis目前的最新版本6,分析了Redis最新特性,如Redis 6的ACL、Tracking等機制。為了照顧對Redis最新特性不熟悉的讀者,這部分內容提供了詳細的應用範例,幫助讀者循序漸進、由淺到深地學習和了解Redis最新特性。
本書也不侷限於Redis,而是由Redis延展出了兩方面內容:
(1)Redis中使用的UNIX機制,包括UNIX網路程式設計、執行緒同步等內容,本書會 透過原始程式展示Redis如何使用這些UNIX機制。
(2)如何透過Redis實現一個分散式系統,主要是Sentinel、Cluster機制的實現原理。
本書使用的原始程式版本是Redis 6,本書提供的Redis操作案例,如無特殊說明,也是在Redis 6版本上執行的操作實例。
▍本書特點
.分析Redis的字串、清單、雜湊、集合這幾種資料類型的編碼格式。
.介紹Redis事件機制與命令執行過程。
.利用I/O重複使用模型,實現事件循環機制。
.說明Redis持久化與複製機制。
.檔案持久化、從節點複製,透過將資料複製到不同備份中,從而保持資料安全。
.使用RDB、AOF持久化機制,以及主從節點複製流程等。
.Redis分散式架構,從流行的分散式演算法Raft出發,分析Sentinel監控節點,Cluster叢集實現資料分片,支援動態新增、刪除叢集節點,以及容錯移轉。
.說明Redis中的進階特性,包括Redis交易、非阻塞刪除、ACL存取控制清單、Tracking機制、Lua指令稿、Module模組、Stream訊息流等內容。
產品目錄
第1部分 資料結構與編碼
01字串
1.1 redisObject
1.2 sds
02串列
2.1 ziplist
2.2 quicklist
03雜湊
3.1字典
3.2資料庫
04集合
4.1無序集合
4.2有序集合
第2部分 事件機制與指令執行
05 Redis啟動過程
5.1伺服器定義
5.2 main函數
5.3 Redis初始化過程
06事件機制
6.1 Redis事件機制概述
6.2 Redis啟動時建立的事件
6.3事件循環器的執行
07 epoll與網路通訊
7.1 I/O重複使用模型
7.2 epoll網路程式設計
7.3 Redis網路通訊啟動過程
08用戶端
8.1定義
8.2建立用戶端
8.3關閉用戶端
8.4用戶端設定
09 Redis指令執行過程
9.1 RESP協定
9.2解析請求
9.3傳回回應
9.4執行指令
10網路I/O執行緒
10.1執行緒概述
10.2互斥量概述
10.3初始化I/O執行緒
10.4解析請求
10.5 I/O執行緒主邏輯
10.6傳回回應
10.7 I/O執行緒狀態切換
第3部分 持久化與複製
11 RDB
11.1 RDB定時邏輯
11.2 RDB持久化過程
11.3 RDB檔案載入過程
11.4 RDB檔案分析範例
11.5 RDB設定
11.6 UNIX寫入時複製機制
11.7 UNIX I/O與快取
12 AOF
12.1 AOF定時邏輯
12.2 AOF持久化過程
12.3 AOF重新定義過程
12.4 AOF檔案載入過程
12.5 AOF檔案分析範例
12.6 AOF設定
13主從複製
13.1流程概述
13.2主從交握流程
13.3從節點同步流程
13.4主節點同步流程
13.5 PSYNC2
13.6主從複製流程
13.7定時邏輯
13.8主從複製設定
第4部分 分散式架構
14 Raft演算法
14.1分散式一致性的困難
14.2 CAP理論
14.3 Raft演算法的設計
14.4 Redis中的Raft演算法
15 Redis Sentinel
15.1 Redis Sentinel的應用範例
15.2 Redis Sentinel的實現原理
15.3 Redis Sentinel的容錯移轉
15.4用戶端互動
16 Redis Cluster
16.1 Redis Cluster的應用範例
16.2 Redis Cluster槽位管理
16.3 Redis Cluster啟動過程
16.4 Redis Cluster節點通訊
16.5 Redis Cluster的容錯移轉
第5部分 進階特性
17交易
17.1交易的應用範例
17.2交易的實現原理
18非阻塞刪除
18.1 UNLINK指令的實現原理
18.2後台執行緒
19記憶體管理
19.1動態記憶體分配器
19.2資料過期機制
19.3資料淘汰機制
20 Redis Stream
20.1 Redis Stream的應用範例
20.2 Stream的實現原理
21存取控制清單ACL
21.1 ACL的應用範例
21.2 ACL的實現原理
22 Redis Tracking
22.1 Redis Tracking的應用範例
22.2 Redis Tracking的實現原理
23 Lua指令稿
23.1 Lua指令稿的應用範例
23.2 Lua指令稿的實現原理
24 Redis Module
24.1 Module的應用範例
24.2 Module的實現原理
01字串
1.1 redisObject
1.2 sds
02串列
2.1 ziplist
2.2 quicklist
03雜湊
3.1字典
3.2資料庫
04集合
4.1無序集合
4.2有序集合
第2部分 事件機制與指令執行
05 Redis啟動過程
5.1伺服器定義
5.2 main函數
5.3 Redis初始化過程
06事件機制
6.1 Redis事件機制概述
6.2 Redis啟動時建立的事件
6.3事件循環器的執行
07 epoll與網路通訊
7.1 I/O重複使用模型
7.2 epoll網路程式設計
7.3 Redis網路通訊啟動過程
08用戶端
8.1定義
8.2建立用戶端
8.3關閉用戶端
8.4用戶端設定
09 Redis指令執行過程
9.1 RESP協定
9.2解析請求
9.3傳回回應
9.4執行指令
10網路I/O執行緒
10.1執行緒概述
10.2互斥量概述
10.3初始化I/O執行緒
10.4解析請求
10.5 I/O執行緒主邏輯
10.6傳回回應
10.7 I/O執行緒狀態切換
第3部分 持久化與複製
11 RDB
11.1 RDB定時邏輯
11.2 RDB持久化過程
11.3 RDB檔案載入過程
11.4 RDB檔案分析範例
11.5 RDB設定
11.6 UNIX寫入時複製機制
11.7 UNIX I/O與快取
12 AOF
12.1 AOF定時邏輯
12.2 AOF持久化過程
12.3 AOF重新定義過程
12.4 AOF檔案載入過程
12.5 AOF檔案分析範例
12.6 AOF設定
13主從複製
13.1流程概述
13.2主從交握流程
13.3從節點同步流程
13.4主節點同步流程
13.5 PSYNC2
13.6主從複製流程
13.7定時邏輯
13.8主從複製設定
第4部分 分散式架構
14 Raft演算法
14.1分散式一致性的困難
14.2 CAP理論
14.3 Raft演算法的設計
14.4 Redis中的Raft演算法
15 Redis Sentinel
15.1 Redis Sentinel的應用範例
15.2 Redis Sentinel的實現原理
15.3 Redis Sentinel的容錯移轉
15.4用戶端互動
16 Redis Cluster
16.1 Redis Cluster的應用範例
16.2 Redis Cluster槽位管理
16.3 Redis Cluster啟動過程
16.4 Redis Cluster節點通訊
16.5 Redis Cluster的容錯移轉
第5部分 進階特性
17交易
17.1交易的應用範例
17.2交易的實現原理
18非阻塞刪除
18.1 UNLINK指令的實現原理
18.2後台執行緒
19記憶體管理
19.1動態記憶體分配器
19.2資料過期機制
19.3資料淘汰機制
20 Redis Stream
20.1 Redis Stream的應用範例
20.2 Stream的實現原理
21存取控制清單ACL
21.1 ACL的應用範例
21.2 ACL的實現原理
22 Redis Tracking
22.1 Redis Tracking的應用範例
22.2 Redis Tracking的實現原理
23 Lua指令稿
23.1 Lua指令稿的應用範例
23.2 Lua指令稿的實現原理
24 Redis Module
24.1 Module的應用範例
24.2 Module的實現原理
規格
誠品貨碼 / 2682139727003
ISBN13 / 9789860776904
ISBN10 / 9860776903
EAN貨碼 / 9789860776904
頁數 / 544
裝訂 / P:平裝
語言 / 1:中文/繁體
尺寸 / 23X17X2.7CM
級別 / N:無
退貨說明
退貨須知:
- 依照消費者保護法的規定,您享有商品貨到次日起七天猶豫期(含例假日)的權益(請注意!猶豫期非試用期),辦理退貨之商品必須是全新狀態(不得有刮傷、破損、受潮)且需完整(包含全部商品、配件、原廠內外包裝、贈品及所有附隨文件或資料的完整性等)。
- 請您以送貨廠商使用之包裝紙箱將退貨商品包裝妥當,若原紙箱已遺失,請另使用其他紙箱包覆於商品原廠包裝之外,切勿直接於原廠包裝上黏貼紙張或書寫文字。若原廠包裝損毀將可能被認定為已逾越檢查商品之必要程度,本公司得依毀損程度扣除回復原狀必要費用(整新費)後退費;請您先確認商品正確、外觀可接受,再行拆封,以免影響您的權利;若為產品瑕疵,本公司接受退貨。
依「通訊交易解除權合理例外情事適用準則」,下列商品不適用七日猶豫期,除產品本身有瑕疵外,不接受退貨:
- 易於腐敗、保存期限較短或解約時即將逾期。(如:生鮮蔬果、乳製品、冷凍冷藏食材、蛋糕)
- 依消費者要求所為之客製化給付。(如:客製印章、鋼筆刻字)
- 報紙、期刊或雜誌。
- 經消費者拆封之影音商品或電腦軟體。
- 非以有形媒介提供之數位內容或一經提供即為完成之線上服務,經消費者事先同意始提供。(如:電子書)
- 已拆封之個人衛生用品。(如:內衣褲、襪類、褲襪、刮鬍刀、除毛刀等貼身用品)
- 國際航空客運服務。
若您退貨時有下列情形,可能被認定已逾越檢查商品之必要程度而須負擔為回復原狀必要費用(整新費),或影響您的退貨權利,請您在拆封前決定是否要退貨:
- 以數位或電磁紀錄形式儲存或著作權相關之商品(包含但不限於CD、VCD、DVD、電腦軟體等) 包裝已拆封者(除運送用之包裝以外)。
- 耗材(包含但不限於墨水匣、碳粉匣、紙張、筆類墨水、清潔劑補充包等)之商品包裝已拆封者(除運送用之包裝以外)。
- 衣飾鞋類/寢具/織品(包含但不限於衣褲、鞋子、襪子、泳裝、床單、被套、填充玩具)或之商品缺件(含購買商品、附件、內外包裝、贈品等)或經剪標或下水或商品有不可回復之髒污或磨損痕跡。
- 食品、美容/保養用品、內衣褲等消耗性或個人衛生用品、商品銷售頁面上特別載明之商品已拆封者(除運送用之包裝外一切包裝、包括但不限於瓶蓋、封口、封膜等接觸商品內容之包裝部分)或已非全新狀態(外觀有刮傷、破損、受潮等)與包裝不完整(缺少商品、附件、原廠外盒、保護袋、配件紙箱、保麗龍、隨貨文件、贈品等)。
- 家電、3C、畫作、電子閱讀器等商品,除商品本身有瑕疵外,退回之商品已拆封(除運送用之包裝外一切包裝、包括但不限於封膜等接觸商品內容之包裝部分、移除封條、拆除吊牌、拆除貼膠或標籤等情形)或已非全新狀態(外觀有刮傷、破損、受潮等)與包裝不完整(缺少商品、附件、原廠外盒、保護袋、配件紙箱、保麗龍、隨貨文件、贈品等)。
- 退貨程序請參閱【客服專區→常見問題→誠品線上退貨退款】之說明。
付款/配送







