《Redis使用教程》进度报告¶
好的,在上一篇博文里面回顾完了《Redis实战》之后,接下来我想谈谈我现在正在写的 Redis 新书 —— 《Redis使用教程》。
《Redis使用教程》的想法最初诞生于我刚开始学习 Redis 的时候,那时 Redis 的学习资源非常缺乏,除了 Redis 官方网站提供的文档之外,只有一本《Redis Cookbook》,但是这本所谓的“Cookbook”只是寥寥地介绍了几个简单的 Redis 应用,看起来一点也不过瘾,所以我当时看完《Redis Cookbook》之后,就产生了自己写一本 Redis 教程的想法。
不过后来我的兴趣从 Redis 的应用转到了 Redis 的源码,并因此把时间投入到了写《Redis设计与实现》里面。 在完成了《Redis设计与实现》之后又接到了《Redis实战》的翻译委托,因此《Redis使用教程》的写作计划就又再延迟了,然后在前后经历了两三年之后,我终于实际地开始写我一直计划的这本 Redis 教程书了。
虽然有些人可能没有察觉,但是在这几年间,Redis 实际上已经发生了很大的变化:
在我刚开始接触 Redis 的时候,Redis 还只有字符串、散列、有序集合这几种通用结构, 但现在已经增加了 HyperLogLog 、 bitmap 、GEO 等专用结构, 甚至还可以通过模块系统来进行功能扩展;
与此同时, Redis 也从一个只有单机功能的简单数据库 —— 有些人甚至把 Redis 戏称为玩具数据库 —— 变成了一个拥有复制、Sentinel和集群功能的“庞然大物”, 因此想要完整地描述和介绍这个数据库的难度比前几年已经大了很多, 并且也需要更多的篇幅。
我以前在看 C++、JAVA、MySQL 等技术的书籍时, 常常会感叹为什么这些书会写得这么厚, 在开始写《Redis使用教程》之后才发觉, 并不是作者故意想把书写厚, 而是因为这些软件的确是非常复杂、包含很多功能, 所以介绍它们的书也因此变厚了。
以《Redis使用教程》为例子, 它的第一部分就介绍了 Redis 的 8 种数据结构, 其中包含对上百个命令的描述, 并展示了如何使用这些命令去实现不同的应用, 而单单这些应用的数量就达到了四五十个。 无论是对于哪一种数据库, 要描写这么多内容都不是一件容易的事情。
我在 2015 年 6 月开始写《Redis使用教程》, 迄今已经过去一年多了, 在今年的 6 月份我完成了这本书的草稿, 并且乐观地认为在今年之内可以完成整本书的写作工作, 但是实际做起来才发现, 这本书还有很多内容需要写, 还有很多细节需要修改和改善, 所以在今年完成已经不可能了, 这里也对期待着本书在今年发布的朋友们说声抱歉。
目前来说, 我已经完成了《Redis使用教程》第一部分的修正工作, 接下来就要开始进行第二部分的修正工作了, 在此之后还有第三部分的修正工作等着我:
第二部分的功能比较简单, 除了《Lua脚本》一章目前想来需要重写之外, 其他章节应该都会比较容易搞定, 所以这一部分的修正工作应该会比较快地完成。
至于第三部分, 因为涉及到复制、Sentinel和集群, 而我对于这三个部分也有很多新想法, 并且我也打算将 Redis 最近的一些新功能添加到这个部分里面, 所以这些章节应该会进行大量的修改和重写, 因此这个部分的修正工作应该会花比较大的时间, 而这个部分也是本书接下来的工作重点。
跟以往一样, 我接下来也会继续在微博和twitter上发布《Redis使用教程》的最新进度, 并在书本的网站 http://RedisGuide.com/ 上面提供更多书本的相关信息, 希望关心这本书的朋友可以继续支持这本书, 并耐心地等待这本书完成的那一天。