【笔记】《Redis设计与实现》chapter2 简单动态字符串
------------恢复内容开始------------
2.1 SDS的定义
struct sdshdr{
// 记录buf数组中已使用字节的数量
// 等于SDS所保存字符串的长度(不含'\0')
int len;
// 记录buf数组中未使用字节的数量
int free;
// 字节数组,用于保存字符串
char buf[];
}
2.2 SDS 与 C 字符串的区别
常数复杂度获取字符串长度
与C字符串不一样,SDS在被链接时可以通过结构中记录的len字段直接获取长度信息,防止连接字符串溢出时,也可以通过这一字段直接调整缓冲区长度
减少修改字符串时带来的内存重分配次数
------------恢复内容结束------------

浙公网安备 33010602011771号