配送方式
-
台灣
- 國內宅配:本島、離島
-
到店取貨:不限金額免運費
-
海外
- 國際快遞:全球
-
港澳店取:
內容簡介
用超高速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是開放原始碼的key-value儲存系統,可作為資料庫、快取、訊息元件。Redis的作者是Salvatore Sanfilippo(網名為antirez),他在2009年開發完成並開放了Redis原始碼。Redis由於性能極高、功能強大,迅速在業界流行,現已成為高併發系統中最常用的元件之一。
Redis提供了多種類型的資料結構,如字串(String)、雜湊(Hash)、串列(List)、集合(Set)、有序集合(Sorted Set)等。Redis還是分散式系統,主從叢集可以實現資料熱備份,檢查點(Sentinel)機制可以保證主從叢集高可用,Cluster叢集則提供了水平擴充的能力。Redis還提供了持久化、Lua指令稿、Module模組、Stream訊息流、Tracking機制等一系統強大功能,適用於各種業務場景。
▍寫作目的
雖然筆者主要使用Java語言開發程式,卻一直希望從原始程式層面深入分析一個C語言實現的分散式系統。C語言可以說是最接近低階語言的開發語言,分析C語言程式,可以讓我們更深入地了解作業系統的底層知識。於是,筆者學習了Redis原始程式,並編寫了本書。
為什麼選擇Redis呢?因為Redis是一個典型的「小而美」的程式。Redis實現簡單,原始程式非常優雅簡潔,閱讀起來並不吃力,而且Redis功能齊全,涵蓋了資料儲存、分散式、訊息流等許多特性,非常值得深入學習。
透過編寫本書,筆者對Redis、UNIX程式設計、分散式系統、儲存系統都有了更深入的了解,再學習其他相關的系統(如MySQL、Nginx等),就可以舉一反三、觸類旁通。希望本書也可以幫助讀者百尺竿頭,更進一步。
▍本書結構
第1部分分析了Redis的字串、清單、雜湊、集合這幾種資料類型的編碼格式。編碼格式,即資料的儲存格式,對於資料庫,資料的儲存格式非常重要,如關聯式資料庫的行式儲存和列式儲存。而Redis作為記憶體中資料庫,對於資料編碼的整體設計思想是:最大限度地「以時間換空間」,從而最大限度地節省記憶體。這部分內容詳細分析了Redis對記憶體的使用如何達到「錙銖必較」的程度。
第2部分分析了Redis的核心流程,包括Redis事件機制與命令執行過程。Redis利用I/O重複使用模型,實現了自己的事件循環機制,而Redis底層由該事件機制驅動運行(很多遠端服務程式都使用類似的架構,如Nginx、MySQL等)。Redis事件機制設計優雅、實現簡單,並且性能卓越,可以說是「化繁為簡」。
第3部分分析了Redis持久化與複製機制。雖然Redis是記憶體中資料庫,但仍然最大限度地保證了資料的可靠性。不管是檔案持久化,還是從節點複製,核心思想都是一樣的:透過將資料複製到不同備份中,從而保持資料安全。這部分內容分析了RDB、AOF持久化機制,以及主從節點複製流程等內容,介紹了Redis資料是如何「不脛而走」的。
第4部分分析了Redis分散式架構。這部分內容從流行的分散式演算法Raft出發,分析了Sentinel如何監控節點,Cluster叢集如何實現資料分片,如何支援動態新增、刪除叢集節點,以及它們的「拿手好戲」——容錯移轉。
第5部分分析了Redis中的進階特性,包括Redis交易、非阻塞刪除、ACL存取控制清單、Tracking機制、Lua指令稿、Module模組、Stream訊息流等內容。Redis為各種高性能、高可用場景提供了非常全面的支援,可以說是「包羅萬象」。
▍致謝
感謝寫作過程中身邊朋友的支持,他們給予筆者很多的力量。感謝Redis的作者antirez,優秀的Redis離不開antirez的辛勤付出,向他致敬。感謝電子工業出版社博文視點的陳曉猛編輯,陳編輯專業的寫作指導和出版組織工作,使得本書得以順利出版。感謝電腦產業的內容創作者,他們的各種分享、網誌文章及圖書都在積極推動產業的發展,也為本書的編寫提供了靈感和參考。
梁國斌
詳細資料
詳細資料
-
- 語言
- 中文繁體
- 裝訂
- 紙本平裝
-
- ISBN
- 9789860776904
- 分級
- 普通級
-
- 頁數
- 544
- 商品規格
- 23*17
-
- 出版地
- 台灣
- 適讀年齡
- 全齡適讀
-
- 注音
- 級別
訂購/退換貨須知
退換貨須知:
**提醒您,鑑賞期不等於試用期,退回商品須為全新狀態**
-
依據「消費者保護法」第19條及行政院消費者保護處公告之「通訊交易解除權合理例外情事適用準則」,以下商品購買後,除商品本身有瑕疵外,將不提供7天的猶豫期:
- 易於腐敗、保存期限較短或解約時即將逾期。(如:生鮮食品)
- 依消費者要求所為之客製化給付。(客製化商品)
- 報紙、期刊或雜誌。(含MOOK、外文雜誌)
- 經消費者拆封之影音商品或電腦軟體。
- 非以有形媒介提供之數位內容或一經提供即為完成之線上服務,經消費者事先同意始提供。(如:電子書、電子雜誌、下載版軟體、虛擬商品…等)
- 已拆封之個人衛生用品。(如:內衣褲、刮鬍刀、除毛刀…等)
- 若非上列種類商品,均享有到貨7天的猶豫期(含例假日)。
- 辦理退換貨時,商品(組合商品恕無法接受單獨退貨)必須是您收到商品時的原始狀態(包含商品本體、配件、贈品、保證書、所有附隨資料文件及原廠內外包裝…等),請勿直接使用原廠包裝寄送,或於原廠包裝上黏貼紙張或書寫文字。
- 退回商品若無法回復原狀,將請您負擔回復原狀所需費用,嚴重時將影響您的退貨權益。
商品評價