Redis 设计与实现

_images/cover.png 欢迎来到《Redis 设计与实现》的支持网站!

《Redis 设计与实现》一书全面而完整地讲解了 Redis 的内部运行机制,对 Redis 的大多数单机功能以及所有多机功能的实现原理进行了介绍,展示了这些功能的核心数据结构以及关键的算法思想。通过阅读本书,读者可以快速、有效地了解 Redis 的内部构造以及运作机制,从而学会如何更高效地使用 Redis 。

你可以通过访问本站,或者关注本书作者的微博twitter豆瓣来获知本书的最新消息。

购买本书请访问:京东商城互动出版网(china-pub)亚马逊当当网 ,另外本书的 Kindle 版本多看阅读版本豆瓣阅读版本 也已有售。

内容与特色介绍

本书介绍了以下内容:

  • 字符串(string)、散列(hash)、列表(list)、集合(set)和有序集合(sorted set)这五种类型的键的底层实现数据结构。
  • Redis 的对象处理机制以及数据库的实现原理。
  • 事务实现原理。
  • 订阅与发布实现原理。
  • Lua 脚本功能的实现原理。
  • SORT 命令的实现原理。
  • BITOPBITCOUNT 等二进制位处理命令的实现原理。
  • 慢查询日志的实现原理。
  • RDB 持久化和 AOF 持久化的实现原理。
  • Redis 事件处理器的实现原理。
  • Redis 服务器和客户端的实现原理。
  • 复制(replication)、Sentinel 和集群(cluster)这三个多机功能的实现原理。

本书的特色是:

  • 带有丰富的图示和表格,帮助读者更好地理解书中的知识点。
  • 关注功能的高层设计思路而不是底层的实现代码,让读者无须花时间研读代码就可以了解到 Redis 的内部实现。
  • 提供带有中文注释的 Redis 源码,帮助有需要的读者做进一步的学习。

查看目录并试读

《Redis 设计与实现》全书共有 388 页,分为 4 个部分,共 24 章。

以下目录中可点击的为试读内容。

第一部分:数据结构与对象

第二部分:单机数据库的实现

  • 数据库

  • 服务器中的数据库
  • 切换数据库
  • 数据库键空间
  • 设置键的生存时间或过期时间
  • 过期键删除策略
  • Redis 的过期键删除策略
  • AOF 、RDB 和复制功能对过期键的处理
  • 数据库通知
  • 重点回顾

  • RDB 持久化

  • AOF 持久化

  • 事件

  • 客户端

  • 服务器

第三部分:多机数据库的实现

  • 复制

  • Sentinel

  • 启动并初始化 Sentinel
  • 获取主服务器信息
  • 获取从服务器信息
  • 向主服务器和从服务器发送信息
  • 接收来自主服务器和从服务器的频道信息
  • 检测主观下线状态
  • 检查客观下线状态
  • 选举领头 Sentinel
  • 故障转移
  • 重点回顾
  • 参考资料

  • 集群

  • 节点
  • 槽指派
  • 在集群中执行命令
  • 重新分片
  • ASK 错误
  • 复制与故障转移
  • 消息
  • 重点回顾

第四部分:独立功能的实现

  • 发布与订阅

  • 事务

  • Lua 脚本

  • 排序

  • SORT <key> 命令的实现
  • ALPHA 选项的实现
  • ASC 选项和 DESC 选项的实现
  • BY 选项的实现
  • 带有 ALPHA 选项的 BY 选项的实现
  • LIMIT 选项的实现
  • GET 选项的实现
  • STORE 选项的实现
  • 多个选项的执行顺序
  • 重点回顾

  • 二进制位数组

注释源码

为了帮助有需要的读者进一步了解 Redis 的实现细节,本书附带了一份包含详细中文注释的 Redis 3.0 版本源码可供参考:https://github.com/huangz1990/redis-3.0-annotated

相关资源

《如何阅读 Redis 源码》 ——文章给出了一个推荐的 Redis 源码阅读顺序以供参考,读者可以在阅读完本书之后,根据文章描述的顺序来尝试阅读源码,从而进一步提高对 Redis 的了解。

《Redis 设计与实现》图片集 ——展示了本书包含的绝大多数图片以及图片的源码,方便读者在写博客、记笔记或者做演讲稿时引用本书的图片,或者通过阅读图片的源码来学习 dot 语言和 Graphviz 图片生成工具。

《Redis 多机特性工作原理简介》 ——这个课程对 Redis 的复制、Sentinel 和集群三个特性的工作原理进行了基本的介绍。因为课程的内容都提取自本书的《复制》、《Sentinel》和《集群》三个章节,所以可以把这个课程看作是这三个章节的简介版本。

旧版《Redis 设计与实现》 ——本书的上一版,介绍了 Redis 2.6 的内部运作机制和单机功能。要了解本书和旧版之间的区别,请阅读 《Redis 设计与实现》新旧版本详细对比 页面。

勘误

勘误信息 页面列出了本书已确认的勘误信息,请读者在阅读本书之前,根据这些信息对书本进行校正,由此带来的不便作者深感抱歉。

如果读者发现了勘误页面目前尚未记录的新错误,可以在本页面的 disqus 论坛进行反馈,又或者通过 huangz.me 页面展示的任意一种联系方式来联系作者。

《Redis使用手册》

书籍介绍 - 图2

《Redis实战》

_images/riacn-cover.png 由《Redis设计与实现》的作者黄健宏翻译的《Redis实战》一书正在火热发售中,该书深入浅出地介绍了 Redis 的五种数据结构,并通过一系列实用的示例深刻地展示了 Redis 的用法。此外,《Redis实战》还介绍了多种扩展和优化 Redis 的方法,无论是 Redis 新手还是有一定经验的 Redis 使用者,应该都能从此书中获益。

欢迎访问 redisinaction.com 并了解《Redis实战》的更多相关信息。

参加群讨论

欢迎各位《Redis设计与实现》读者加入以下 QQ 群:

  • IT 技术讨论 1 群,群号 398976550 ,旧群,目前人数已饱和
  • IT 技术讨论 2 群,群号 186200307 ,新群,名额很多,推荐加入

你可以在群里面分享你的阅读心得和 Redis 使用经验,又或者跟其他人讨论你在使用 Redis 过程中遇到的问题。