Redis没有直接使用C语言传统的字符串表示,而是自己构建了一种名为简单动态字符串(SDS)的抽象类型,并将其作为Redis的默认字符串表示,即Redis中包含字符串值的键值对在底层都是由SDS实现的。 1. SDS的定义 每个sds.h/sdshdr结构表示一个SDS的值,如下所示: struct sdshdr { //记录buf数组中已使用字节的数量,等于SDS保存的字符串长度 int len; //记录buf数组中未使用字节的数量 int free; //字节数组,用于保存字符串 char buf[]; };