7年前,出版了一本 Redis 神书

程序员鱼皮

共 2538字,需浏览 6分钟

 · 2021-07-07

一直有在推特关注黄健宏老师的最新动态,最近在哔哩哔哩看了他关于 《Redis 设计与实现》这本书的创作回忆录[1]

很有感触,简单记录并分享一下,希望大家也能有所收获。

《Redis 设计与实现》这本书我就不用多说了,可以说是学习 Redis 必看的一本书。这本书已经出版 7 年,一共印刷了 24 次。

下文中的我指的是黄健宏老师。

初识 Redis 是在 2011 年,那会微博是非常热门的一个网站。

和大家学习编程一样,我当时就想:“自己能不能模仿微博实现一个呢?”。

于是,我便开始了模仿微博的编程实践之路。

网站的初始技术栈使用的 Python + Flask +MySQL 。

在这个过程中,我发现使用 MySQL 不支持直接的集合运算操作, 实现“共同关注”(求交集)功能非常复杂,不符合常理!

既然遇到问题,那就要考虑能不能换一种思路解决这个问题(解决问题不应该掉进死胡同)。

考察了很多 NoSQL 数据库之后,他最终找到了 Redis。

初遇 Redis ,我就被其简单轻量且易用所吸引。

不过,彼时 Redis 还只是一个新兴数据库,用的人还比较少,中文资料也比较少。

于是,我便开始翻译 Redis 官方文档,并把这些翻译之后的文档被集中整理成了 Redis 命令参考[2]

为了宣传《Redis 命令参考》,我在豆瓣发表过相关的一些帖子。

也正是因此这次的发帖经历,我才结识当时在阿里云工作的 hoterran,这个对《Redis 设计与实现》这本书的完成提供了很大的支持的朋友。

由于阿里云当时也在开发一个基于 Redis 的系统,所以,hoterran 也深入研究过 Redis,并写了很多 Redis 相关的技术文。

hoterran 写的都是一些 Redis 的源代码分析相关的文章。

hoterran 的源码分析系列文章让我深受震撼,这也是我第一次看源码分析相关的文章。

当时的我也只是简单会用 Redis 的一些常见命令,仅仅停留在软件的使用上。

我们两个彼此都很欣赏对方的文章,心里想着后面可以出一本 Redis 相关的书籍。

过了一个月后,hoterran 联系到我,他说:“阿宏,机械工业出版社的吴怡编辑联系到我,想让我写一本 Redis 方面的书籍。我一个人写源码分析可能写不了多少,你有想法不?”。

我心里当时还挺高兴的,我觉得 hoterran 的源码分析系列的文章质量很高,如果出书的话应该会反响不错。

国庆节的时候,我俩便开始一起构思 Redis 书的大纲。那时,我也才 21 岁。

不过,大纲写好之后,写书的计划还是被搁置了。因为,年底的时候,hoterran 的孩子出生了,他要帮忙照顾孩子。

时间来到 2012 年!

这一年,日常对 Redis 的使用让我对 Redis 有了更深刻的认识,

在这个期间,我还写了一系列的 Redis 源码分析的文章。

这个时候,我重新拾起了出一本 Redis 书的想法。

于是,我就找到 hoterran ,希望他能够和我一起来撰写。

让我开心的是,hoterran 答应和我一起完成这件事情。

为此,我们还专门创建了一个用来写作的 Organization 。其中的一个项目就是我们要写的书籍,另外一个项目用来存放添加注释后的 Redis 源码。

不过,半个月后,这件事情又再一次终止,hoterran 因为工作调动退出了。

这对当时一腔热血想要搞点事情的我冲击还是挺大的。

于是,我开始反思,为什么这两次写书的经历最终都以失败告终。

为此,我做了下面这些改变:

  1. 下定决心独立完成 Redis 书的写作,这对于我当时的能力来说是完全没有问题的。
  2. 开始改良自己的风格,而不是模仿 hoterran 源码分析文章的风格。
  3. 进一步精炼自己的文章,提高文章质量。
  4. 受到 《Linux 内核设计与实现》的影响,我将书籍的名字定为 《Redis 设计与实现》。

时间来到 2013 年!

这一年在网络上发布了 《Redis 设计与实现》 的在线阅读版[3]

发布之后,反响还可以,还有好几家出版社联系到我。说实话,我有点受宠若惊。

hoterran 也向机械工业出版社的吴怡编辑推荐了 《Redis 设计与实现》 的在线阅读版。

因为和吴怡编辑接触的比较早,我最终选了机械工业出版社。

不过,当时 《Redis 设计与实现》 在线阅读版的内容还比较少。

于是,我就和出版社商量说基于 Redis 3.0 测试版的代码对内容做进一步的完善。

时间来到 2014 年!

经过一年时间,《Redis 设计与实现》第一版正式版正式问世!

回顾这些年,我总结了下面几个对于个人发展比较有帮助的建议:

  1. 多做有意义的事情 :我在出书之前,坚持写作以及翻译优秀的外文让我有了写书的基础!
  2. 多交朋友 :写作之路遇到的很多朋友对我影响很大,没有他们的帮助,或许就没有《Redis 设计与实现》 。
  3. 下定决心之后就去做,不要害怕 :刚开始两次的写书经历都失败了,我觉得和我自己缺乏决心和勇气有很大关系。
  4. 创新思维 :写作过程中,我逐渐形成了自己的风格。为了提升阅读体验,我不是一大段一大段的贴代码,而是将带注释的源码单独开源了出来。
  5. 专注于努力 :一年半的时间,我把我几乎所有时间都用在了写 《Redis 设计与实现》。

最后,简单聊聊未来的打算。

《Redis 设计与实现》还是基于 Redis 3.0 来写的,后续的话,我应该会基于最新版的 Redis 重新写一本。

参考资料

[1]

《Redis设计与实现》这本书的创作回忆录: https://www.bilibili.com/medialist/play/watchlater/BV1G64y1d7Co

[2]

Redis 命令参考: http://redisdoc.com/

[3]

《Redis 设计与实现》 的在线阅读版: http://origin.redisbook.com/


原创不易,欢迎点赞分享。咱们下期再会!
浏览 15
点赞
评论
收藏
分享

手机扫一扫分享

举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

举报