Redis设计与实现

_images/cover.png

欢迎来到《Redis设计与实现》的读者服务网站!

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

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

购买

购买本书请访问: 京东商城当当网 , 另外本书的 多看阅读版本豆瓣阅读版本 也已有售。

内容与特色介绍

本书介绍了以下内容:

  • 字符串(string)、散列(hash)、列表(list)、集合(set)和有序集合(sorted set)这五种类型的键的底层实现数据结构。

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

  • 事务实现原理。

  • 订阅与发布实现原理。

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

  • SORT 命令的实现原理。

  • BITOPBITCOUNT 等二进制位处理命令的实现原理。

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

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

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

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

  • 复制(replication)、Sentinel 和集群(cluster)这三个多机功能的实现原理。

本书的特色是:

  • 带有丰富的图示和表格, 帮助读者更好地理解书中的知识点。

  • 关注功能的高层设计思路而不是底层的实现代码, 让读者无须花时间研读代码就可以了解到 Redis 的内部实现。

  • 提供带有中文注释的 Redis 源码, 帮助有需要的读者做进一步的学习。

查看目录并试读

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

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

  1. 简介

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

  1. 简单动态字符串

  1. 链表

  1. 字典

  1. 跳跃表

  1. 整数集合

  1. 压缩列表

  1. 对象

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

  1. 数据库

  • 服务器中的数据库

  • 切换数据库

  • 数据库键空间

  • 设置键的生存时间或过期时间

  • 过期键删除策略

  • Redis 的过期键删除策略

  • AOF 、RDB 和复制功能对过期键的处理

  • 数据库通知

  • 重点回顾

  1. RDB 持久化

  1. AOF 持久化

  1. 事件

  1. 客户端

  1. 服务器

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

  1. 复制

  1. Sentinel

  • 启动并初始化 Sentinel

  • 获取主服务器信息

  • 获取从服务器信息

  • 向主服务器和从服务器发送信息

  • 接收来自主服务器和从服务器的频道信息

  • 检测主观下线状态

  • 检查客观下线状态

  • 选举领头 Sentinel

  • 故障转移

  • 重点回顾

  • 参考资料

  1. 集群

  • 节点

  • 槽指派

  • 在集群中执行命令

  • 重新分片

  • ASK 错误

  • 复制与故障转移

  • 消息

  • 重点回顾

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

  1. 发布与订阅

  1. 事务

  1. Lua 脚本

  1. 排序

  • SORT <key> 命令的实现

  • ALPHA 选项的实现

  • ASC 选项和 DESC 选项的实现

  • BY 选项的实现

  • 带有 ALPHA 选项的 BY 选项的实现

  • LIMIT 选项的实现

  • GET 选项的实现

  • STORE 选项的实现

  • 多个选项的执行顺序

  • 重点回顾

  1. 二进制位数组

  1. 慢查询日志

  1. 监视器

注释源码

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

相关资源

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

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

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

勘误

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

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