1.4 行文规则

名字引用规则

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

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

在第一次引用某个名字之后,本书就会去掉名字前缀的文件名,直接使用名字本身。举个例子,当第一次引用redis.h文件的redisDb结构的时候,会使用redis.h/redisDb格式,而之后再次引用redisDb结构时,只使用名字redisDb。

结构引用规则

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

算法规则

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

代码规则

本书使用C语言和Python语言来展示代码:

·在描述数据结构以及比较简短的代码时,本书通常会直接粘贴Redis的源代码,也即C语言代码。

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

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