Redis 设计与实现
欢迎来到《Redis 设计与实现》的支持网站!
《Redis 设计与实现》一书全面而完整地讲解了 Redis 的内部运行机制,对 Redis 的大多数单机功能以及所有多机功能的实现原理进行了介绍,展示了这些功能的核心数据结构以及关键的算法思想。通过阅读本书,读者可以快速、有效地了解 Redis 的内部构造以及运作机制,从而学会如何更高效地使用 Redis 。
你可以通过访问本站,或者关注本书作者的微博、twitter和豆瓣来获知本书的最新消息。
购买本书请访问:京东商城 、互动出版网(china-pub) 、亚马逊 、当当网 ,另外本书的 Kindle 版本 、 多看阅读版本 和 豆瓣阅读版本 也已有售。
内容与特色介绍
本书介绍了以下内容:
- 字符串(string)、散列(hash)、列表(list)、集合(set)和有序集合(sorted set)这五种类型的键的底层实现数据结构。
- Redis 的对象处理机制以及数据库的实现原理。
- 事务实现原理。
- 订阅与发布实现原理。
- Lua 脚本功能的实现原理。
SORT
命令的实现原理。BITOP
、BITCOUNT
等二进制位处理命令的实现原理。- 慢查询日志的实现原理。
- RDB 持久化和 AOF 持久化的实现原理。
- Redis 事件处理器的实现原理。
- Redis 服务器和客户端的实现原理。
- 复制(replication)、Sentinel 和集群(cluster)这三个多机功能的实现原理。
本书的特色是:
- 带有丰富的图示和表格,帮助读者更好地理解书中的知识点。
- 关注功能的高层设计思路而不是底层的实现代码,让读者无须花时间研读代码就可以了解到 Redis 的内部实现。
- 提供带有中文注释的 Redis 源码,帮助有需要的读者做进一步的学习。
查看目录并试读
《Redis 设计与实现》全书共有 388 页,分为 4 个部分,共 24 章。
以下目录中可点击的为试读内容。
第一部分:数据结构与对象
第二部分:单机数据库的实现
- 数据库
- RDB 持久化
- AOF 持久化
- AOF 持久化的实现
- AOF 文件的载入与数据还原
- AOF 重写
- 重点回顾
- 事件
- 客户端
- 服务器
第三部分:多机数据库的实现
- 复制
- Sentinel
- 启动并初始化 Sentinel
- 获取主服务器信息
- 获取从服务器信息
- 向主服务器和从服务器发送信息
- 接收来自主服务器和从服务器的频道信息
- 检测主观下线状态
- 检查客观下线状态
- 选举领头 Sentinel
- 故障转移
- 重点回顾
- 参考资料
- 集群
第四部分:独立功能的实现
- 发布与订阅
- 事务
- Lua 脚本
- 创建并修改 Lua 环境
- Lua 环境协作组件
- EVAL 命令的实现
- EVALSHA 命令的实现
- 脚本管理命令的实现
- 脚本复制
- 重点回顾
- 参考资料
- 排序
- SORT <key> 命令的实现
- ALPHA 选项的实现
- ASC 选项和 DESC 选项的实现
- BY 选项的实现
- 带有 ALPHA 选项的 BY 选项的实现
- LIMIT 选项的实现
- GET 选项的实现
- STORE 选项的实现
- 多个选项的执行顺序
- 重点回顾
- 二进制位数组
- 位数组的表示
- GETBIT 命令的实现
- SETBIT 命令的实现
- BITCOUNT 命令的实现
- BITOP 命令的实现
- 重点回顾
- 参考资料
注释源码
为了帮助有需要的读者进一步了解 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使用手册》
《Redis实战》
由《Redis设计与实现》的作者黄健宏翻译的《Redis实战》一书正在火热发售中,该书深入浅出地介绍了 Redis 的五种数据结构,并通过一系列实用的示例深刻地展示了 Redis 的用法。此外,《Redis实战》还介绍了多种扩展和优化 Redis 的方法,无论是 Redis 新手还是有一定经验的 Redis 使用者,应该都能从此书中获益。
欢迎访问 redisinaction.com 并了解《Redis实战》的更多相关信息。
参加群讨论
欢迎各位《Redis设计与实现》读者加入以下 QQ 群:
- IT 技术讨论 1 群,群号 398976550 ,旧群,目前人数已饱和
- IT 技术讨论 2 群,群号 186200307 ,新群,名额很多,推荐加入
你可以在群里面分享你的阅读心得和 Redis 使用经验,又或者跟其他人讨论你在使用 Redis 过程中遇到的问题。