[预告] [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