Redis设计与实现 学习笔记 第一章 引言

本书会尽量以高层次的角度对Redis的实现原理进行描述,如果读者只是对Redis的实现原理感兴趣,但并不想研究Redis的源码,那么阅读本书就够了。

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

1.1 Redis版本说明

本书是基于Redis 2.9——也就是Redis 3.0的开发版来编写的,因为Redis 3.0的更新主要与Redis的多机功能有关,而Redis 3.0的单机功能与Redis 2.6、Redis 2.8的单机功能基本相同,所以本书的内容对于使用Redis 2.6至Redis 3.0的读者来说应该都是有用的。

另外,因为Redis通常都是渐进地增加新功能,并且很少会大幅地修改已有功能,所以本书大部分内容对于Redis 3.0之后的几个版本来说,应该也是有用的。

1.2 章节编排

本书由“数据结构与对象”、“单机数据库的实现”、“多机数据库的实现”、“独立功能的实现”四个部分组成。

第一部分 “数据结构与对象”

Redis数据库里面的每个键值对(key-value pair)都是由对象(object)组成的,其中:
1.数据库键总是一个字符串对象(string object);

2.数据库键的值则可以是字符串对象、列表对象(list object)、哈希对象(hash object)、集合对象(set object)、有序集合对象(sorted set object)这五种对象中的一种。

比如说,执行以下命令将在数据库中创建一个键为字符串,值也为字符串对象的键值对:
在这里插入图片描述
而执行以下命令将在数据库中创建一个键为字符串对象,值为列表对象的键值对:
在这里插入图片描述
本书第一部分将对以上提到的五种不同类型的对象进行介绍,剖析这些对象所使用的底层数据结构,并说明这些数据结构是如何深刻地影响对象的功能和性能的。

1.3 推荐的阅读方法

因为Redis的单机功能是多机功能的子集,所以无论读者使用的是单机模式的Redis还是多机模式的Redis,都应该阅读本书的第一部分和第二部分,这两个部分包含的知识是所有Redis使用者都必然会用到的。

如果读者要使用Redis的多机功能,那么阅读完第一二部分后,应接着阅读第三部分。如果只使用单机功能,那么可以跳过第三部分,直接阅读第四部分。

本书的前三个部分都是以自底向上(bottom-up)的方式来写的,也就是说,排在后面的章节会假设读者已经读过了排在前面的章节。

本书的第四部分是完全独立的,读者可以按自己的兴趣挑选要读的章节。在本书的第四部分中,除了第20章的其中一节涉及多机功能的内容之外,其他章节都没有涉及多机功能的内容,所以第四部分的大部分章节都可以在只阅读了本书第一部分和第二部分的情况下阅读。
在这里插入图片描述
1.4 行文规则

在第一次引用Redis源代码文件file中的名字name时,本书使用file/name格式,比如redis.c/main表示redis.c文件中的main函数。

在第一次引用标准库头文件file中的名字name时,本书使用<file>/name格式,比如<unistd.h>/write表示unistd.h头文件中的write函数。

在第一次引用某个名字之后,本书就会去掉名字前缀的文件名,直接使用名字本身。

结构引用规则

本书使用struct.property格式来引用struct结构的property属性,比如redisDb.id表示redisDb结构的id属性。

算法规则

除非有额外说明,否则本书列出的算法复杂度一律为最坏情况下的算法复杂度。

代码规则

本书使用C语言和Python语言来展示代码:
1.在描述数据结构以及比较简短的代码时,本书通常会直接粘贴Redis的源代码,也即C语言代码。

2.而当需要使用代码来描述比较长或比较复杂的程序时,本书通常会使用Python语言来表示伪代码。

本书展示的Python伪代码中通常会包含server和client两个全局变量,其中server表示服务器状态(redis.h/redisServer结构的实例),而client则表示正在执行操作的客户端状态(redis.h/redisClient结构的实例)。

1.5 配套网站

本书配套网站redisbook.com记录了本书的最新消息,并且提供了附带详细注释的Redis源代码可供下载,读者也可通过这个网站查看和反馈本书的勘误,或发表与本书有关的问题、意见以及建议。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值