## 注釋源碼
為了幫助有需要的讀者進一步了解 Redis 的實現細節, 本書附帶了一份包含詳細中文注釋的 Redis 3.0 版本源碼可供參考:[https://github.com/huangz1990/redis-3.0-annotated](https://github.com/huangz1990/redis-3.0-annotated)?。
## 相關資源
[《如何閱讀 Redis 源碼》](http://blog.huangz.me/diary/2014/how-to-read-redis-source-code.html)?—— 文章給出了一個推薦的 Redis 源碼閱讀順序以供參考, 讀者可以在閱讀完本書之后, 根據文章描述的順序來嘗試閱讀源碼, 從而進一步提高對 Redis 的了解。
[《Redis 設計與實現》圖片集](http://1e-gallery.redisbook.com/)?—— 展示了本書包含的絕大多數圖片以及圖片的源碼, 方便讀者在寫博客、記筆記或者做演講稿時引用本書的圖片, 或者通過閱讀圖片的源碼來學習 dot 語言和 Graphviz 圖片生成工具。
[《Redis 多機特性工作原理簡介》](http://www.chinahadoop.cn/course/31)?—— 這個課程對 Redis 的復制、Sentinel 和集群三個特性的工作原理進行了基本的介紹。 因為課程的內容都提取自本書的《復制》、《Sentinel》和《集群》三個章節, 所以可以把這個課程看作是這三個章節的簡介版本。
[舊版《Redis 設計與實現》](http://origin.redisbook.com/)?—— 本書的上一版, 介紹了 Redis 2.6 的內部運作機制和單機功能。 要了解本書和舊版之間的區別, 請閱讀?[*《Redis 設計與實現》新舊版本詳細對比*](http://redisbook.com/different.html)?頁面。
## 勘誤
[*勘誤信息*](http://redisbook.com/errata/index.html)?頁面列出了本書已確認的勘誤信息, 請讀者在閱讀本書之前, 根據這些信息對書本進行校正, 由此帶來的不便作者深感抱歉。
如果讀者發現了勘誤頁面目前尚未記錄的新錯誤, 可以在本頁面的 disqus 論壇進行反饋, 又或者通過?[huangz.me](http://huangz.me/)?頁面展示的任意一種聯系方式來聯系作者。
- 介紹
- 前言
- 致謝
- 簡介
- 第一部分:數據結構與對象
- 簡單動態字符串
- SDS 的定義
- SDS 與 C 字符串的區別
- SDS API
- 重點回顧
- 參考資料
- 鏈表
- 鏈表和鏈表節點的實現
- 鏈表和鏈表節點的 API
- 重點回顧
- 字典
- 字典的實現
- 哈希算法
- 解決鍵沖突
- rehash
- 漸進式 rehash
- 字典 API
- 重點回顧
- 跳躍表
- 跳躍表的實現
- 跳躍表 API
- 重點回顧
- 整數集合
- 整數集合的實現
- 升級
- 升級的好處
- 降級
- 整數集合 API
- 重點回顧
- 壓縮列表
- 壓縮列表的構成
- 壓縮列表節點的構成
- 連鎖更新
- 壓縮列表 API
- 重點回顧
- 對象
- 對象的類型與編碼
- 字符串對象
- 列表對象
- 哈希對象
- 集合對象
- 有序集合對象
- 類型檢查與命令多態
- 內存回收
- 對象共享
- 對象的空轉時長
- 重點回顧
- 第二部分:單機數據庫的實現
- 數據庫
- 數據庫鍵空間
- 重點回顧
- RDB 持久化
- RDB 文件結構
- 重點回顧
- AOF 持久化
- AOF 持久化的實現
- 重點回顧
- 事件
- 文件事件
- 重點回顧
- 參考資料
- 客戶端
- 客戶端屬性
- 重點回顧
- 服務器
- 命令請求的執行過程
- 重點回顧
- 第三部分:多機數據庫的實現
- 復制
- 舊版復制功能的實現
- 重點回顧
- Sentinel
- 啟動并初始化 Sentinel
- 重點回顧
- 參考資料
- 集群
- 節點
- 重點回顧
- 第四部分:獨立功能的實現
- 發布與訂閱
- 頻道的訂閱與退訂
- 重點回顧
- 參考資料
- 事務
- 事務的實現
- 重點回顧
- Lua 腳本
- 創建并修改 Lua 環境
- 重點回顧
- 排序
- SORT <key> 命令的實現
- 重點回顧
- 二進制位數組
- GETBIT 命令的實現
- 重點回顧
- 慢查詢日志
- 慢查詢記錄的保存
- 慢查詢日志的閱覽和刪除
- 添加新日志
- 重點回顧
- 監視器
- 成為監視器
- 向監視器發送命令信息
- 重點回顧
- 源碼、相關資源和勘誤