Redis如今已经成为Web开发社区中最火热的内存数据库之一,而它的诞生距现在不过才4年。随着Web 2.0的蓬勃发展,网站数据快速增长,对高性能读写的需求也越来越多,再加上半结构化的数据比重逐渐变大,人们对早已被铺天盖地地运用着的关系数据库能否适应现今的存储需求产生了疑问。而Redis的迅猛发展,为这个领域注入了全新的思维。

Redis凭借其全面的功能得到越来越多的公司的青睐,从初创企业到新浪微博这样拥有着几百台Redis服务器的大公司,都能看到Redis的身影。Redis也是一个名副其实的多面手,无论是存储、队列还是缓存系统,都有它的用武之地。

本书全面而完整地讲解了Redis的内部机制与实现方式,对Redis的大多数单机功能以及所有多机功能的实现原理进行了介绍,展示了这些功能的核心数据结构以及关键的算法思想.图示丰富,描述清晰,井给出大量参考信息。通过阅读本书,读者可以快速、有效地了解Redis的内部构造以及运作机制,更好、更高效地使用Redis。

另一方面,如果读者打算深入了解Redis 实现原理的底层细节,本书在RedisBook.com提供了一份带有详细注释的Redis源代码,读者可以先阅读本书对某一功能的介绍, 然后再阅读该功能对应的实现代码,这有助于读者更快地读懂实现代码,也有助于读者更深入地了解该功能的实现原理。

本书主要分为四大部分:

本书对Redis 的大多数单机功能以及所有多机功能的实现原理进行了介绍,力图展示这些功能的核心数据结构以及关键的算法思想。

 

第一部分数据结构与对象

第一部分:“ 数据结构与对象"介绍了Redis中的各种对象及其数据结构,井说明这些数据结构如何影响对象的功能和性能。

 

 

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

第二部分:“单机数据库的实现"对Redis实现单机数据库的方法进行了介绍,包括数据库、RDB持久化、AOF持久化、事件等。

  • 第9章“数据库”对Redis数据库的实现原理进行了介绍,说明了服务器保存键值对的方法,服务器保存键值对过期时间的方法,以及服务器自动删除过期键值对的方法等等。
  • 第10章“RDB持久化”和第11章“AOF 持久化”分别介绍了Redis 两种不同的持久化方式的实现原理,说明了服务器根据数据库来生成持久化文件的方法,服务器根据持久化文件来还原数据库的方法,以及BGSAVE命令和BGREWRITEAOF命令的实现原理等等。
  • 第12章“事件"对Redis的文件事件和时间事件进行了介绍:口文件事件主要用于应答( acept)客户端的连接请求,接收客户端发送的命令请求,以及向客户端返回命令回复;口而时间事件则主要用于执行redis.c/serverCron函数,这个函数通过执行常规的维护和管理操作来保持Redis服务器的正常运作,一些重要的定时操作也是由这个函数负责触发的。
  • 第13章“客户端”对Redis服务器维护和管理客户端状态的方法进行了介绍,列举了客户端状态包含的各个属性,说明了客户端的输入缓冲区和输出缓冲区的实现方法,以及Redis服务器创建和销毁客户端状态的条件等等。
  • 第14章“服务器"” 对单机Redis服务器的运作机制进行了介绍,详细地说明了服务器处理命令请求的步骤,解释了serverCron函数所做的工作,并讲解了Redis 服务器的初始化过程。

 

 

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

第三部分:“多机数据库的实现"对Redis的Sentinel,复制、集群三个多机功能进行了介绍。

  • 第15章“复制”对Redis的主从复制功能( master-slave replication)的实现原理进行了介绍,说明了当用户指定一个服务器(从服务器)去复制另一个服务器(主服务器)时,主从服务器之间执行了什么操作,进行了什么数据交互,诸如此类。
  • 第16章“Sentinel" 对Redis Sentinel 的实现原理进行了介绍,说明了Sentinel 监视服务器的方法,Sentinel 判断服务器是否下线的方法,以及Sentinel对下线服务器进行故障转移的方法等等。
  • 第17章“集群”对Redis集群的实现原理进行了介绍,说明了节点( node)的构建方法,节点处理命令请求的方法,转发( rdiretion)错误的实现方法,以及各个节点之间进行通信的方法等等。

 

第四部分独立功能的实现

第四部分:“独立功能的实现"对Redis中各个相对独立的功能模块进行了介绍,涉及发布与订阅、事务、Lua脚本、排序、二进制位数组、懂查询日志、监视器等。

  • 第18章“发布与订阅”对PUBLISH、SUBSCRIBE. PUBSUB等命令的实现原理进行了介绍,解释了Redis 的发布与订阅功能是如何实现的。
  • 第19章“事务”对MULI.EXEC、WATCH等命令的实现原理进行了介绍,解释了Redis的事务是如何实现的,并说明了Redis 的事务对ACID性质的支持程度。
  • 第20章“Lua 脚本"对EVAL、EVALSHA、 SCRIPT LOAD等命令的实现原理进行了介绍,解释了Redis服务器是如何执行和管理用户传人的Lua脚本的;这一- 章还对Redis 服务器构建Lua环境的过程,以及主从服务器之间复制Lua脚本的方法进行了介绍。
  • 第21章“排序”对SORT命令以及SORT命令所有可用选项(比如DESC、ALPHA、GET等等)的实现原理进行了介绍,并说明了当SORT命令带有多个选项时,不同选项执行的先后顺序。
  • 第22章“二进制位数组”对Redis保存二进制位数组的方法进行了介绍,并说明了GETBIT, SETBIT, BITCOUNT、BITOP 这几个二进制位数组操作命令的实现原理。
  • 第23章“慢查询日志”对Redis创建和保存慢查询8志( slow log)的方法进行了介绍。并说明了SLOWLOG GET. SLOWLOG LEN. SLOWLOG RESET等慢查询日志操作命令的实现原理。
  • 第24章“监视器”介绍了将客户端变为监视器( monitor)的方法,以及服务器在处理命令请求时,向监视器发送命令信息的方法。

 

需要获取完整文档用以学习的朋友们可以关注一下小编,后台私信:“学习”获取免费领取方式!