[預告] [3月8日] 《Redis 設計與實現》
[預告] [3月8日] 《Redis 設計與實現》2013-02-28 10:36:27自從開始在部落格斷斷續續地寫一些 Redis 的源碼分析文章以來,我一直有這樣一個打算:不是間隔地、分多次地寫多篇 Redis 的源碼分析文章,而是抽出一段時間,對 Redis 的源碼做一次完整的分析,並將其中的關鍵點、以及有趣的部分記錄下來,集結成一個文檔(或者更通俗地說,一本書?)。
我在 2012 年 12 月開始將“Redis 源碼書”的這個想法付諸實現,並且很幸運地在今天完成初稿了。
我把這本“Redis 源碼書”命名為《Redis 設計與實現》,它由兩部分組成:
1. 一個文檔,描述了 Redis 源碼中,各個功能點的關鍵實現,核心資料結構和演算法,以及設計上的取捨。
2. 一份 Redis 2.6 的源碼,源碼中的大部分檔案都帶有詳細的注釋。(3月5日更新,帶注釋源碼已放出 https://github.com/huangz1990/annotated_redis_source )
在文檔部分,我儘力地將 Redis 各個功能的運行機制從代碼中抽離出來,並通過簡短的文字、圖片、流程圖和表格來表示這些機制,只有在需要的時候,才會貼少量的虛擬碼或者原始碼。這可以保證文檔中記錄的都是高層次的設計觀點 —— 讀者可以很輕鬆地理解 Redis 的運行原理,而無須和源碼中的各種實現細節打交道。
另一方面,我認為一份帶有完整注釋的原始碼對於深入地學習 Redis 也是很有用的:對於那些對 Redis 的運作機制感興趣、但又不想陷入到源碼細節中的讀者來說,他們只需要閱讀文檔就可以了;而對於那些更有好奇心,需要深入到源碼中去的讀者來說,文檔的作用就像夜空中的北鬥星一樣,可以為他們指明總體方向,而源碼中的注釋則像路標一樣,給出一些如何前進的線索。
對初稿的 debug 和最後修改還需要一些時間,如果一切順利的話,文檔第一版將在婦女節當天釋出,希望這個新文檔會對喜歡 Redis 的朋友有協助,也歡迎各位到時對文檔提意見或建議。嗯。
huangz
2013.2.28