1、什么是SDS?
Redis 自定的字符串存储结构,关于redis,你需要了解的几点!中我们对此有过简要说明。
Redis 底层是用C语言编写的,可是在字符存储上,并未使用C原生的String类型,而是定义了自己的字符串结构 Simple Dynamic Stirng,简称SDS。
SDS基本结构如下:
struct sdshdr {
int len; // 记录buf数组中已使用字节的数量,等于SDS所保存字符串的长度
int free; // 记录buf数组中未使用字节的数量
char buf[];// 字节数组,用于保存字符串
};
例如,字符串“Redis”存储示意图为:
图1
当前存储字符串长度为5,未使用长度为0,字节数组存储的字符为“Redis ”。
这里需要注意的是:内部数据数组存储字符串形式符合C语言要求,以‘