《Redis 设计与实现》新旧版本详细对比

一些朋友可能读过 2013 年 3 月 8 日在网上释出的旧版《Redis 设计与实现》, 为了帮助各位了解新版《Redis 设计与实现》所做的改进, 以下表格罗列了新旧两版《Redis 设计与实现》的主要区别:

版本

旧版

新版

形式

网上发布的免费电子书。

由机械工业出版社华章公司出版的实体书。

Redis 版本

基于 Redis 2.6 编写。

基于 Redis 3.0 的开发版 Redis 2.9 编写, 向后兼容 Redis 2.8 和 Redis 2.6 。

写作目标

介绍 Redis 的底层运作机制和单机功能的实现原理。

介绍 Redis 的底层运作机制、单机功能和多机功能的实现原理。

内容

  • 各种类型的键的底层实现数据结构, 比如字符串、链表、字典,等等。

  • Redis 的对象处理机制,以及数据库的实现原理。

  • 事务实现原理。

  • 订阅与发布实现原理。

  • Lua 脚本功能的实现原理。

  • 慢查询日志的实现原理。

  • RDB 持久化和 AOF 持久化的实现原理。

  • Redis 事件处理器的实现原理。

  • Redis 服务器和客户端的实现原理。

根据读者的反馈, 对旧版已有的内容进行了大幅度的改写, 删除了一些比较鸡肋的内容, 修复一些已知的 bug , 然后根据 Redis 2.9 的源码, 对已有内容进行更新,并添加新内容。

举个删除内容的例子: 很多读者都对旧版里《字典》一章的安全迭代器产生了误解, 在写新版的时候,我认为这个知识点过于底层, 并且没有实际的帮助,所以新版里面就删除了对安全迭代器的介绍。

再举个添加内容的例子: 因为 Redis 在 2.8 版本才添加了 PUBSUB 命令, 所以旧版并没有介绍 PUBSUB 命令的实现原理, 而新版则有对这个命令进行介绍。 又比如说, 旧版将对客户端的介绍和对服务器的介绍放在了同一章, 而新版则扩写了对客户端和对服务器的介绍, 并使用两章来分别介绍它们。

除了对旧版已有的内容进行更新之外, 新版还添加了《复制》、《Sentinel》、《集群》、《排序》和 《二进制位数组》五个全新的章节。

篇幅

163 页。

388 页。

附赠内容

Redis 2.6 注释源码。

Redis 3.0 注释源码。