# 结构

sdshdr

# 用处

  • String 对象
  • List 对象中的字符串对象
  • AOF 缓冲区
  • 客户端状态中的输入缓冲区

# 定义

struct sdshdr {
    // 字符串长度
    int len;
    //buf 数组中剩余长度
    int free;
    // 保存字符串,buf.length = len + free + 1
    char buf[];
};

# 特点

  • 常数复杂度获取字符串长度
  • 杜绝缓冲区溢出
  • 减少修改字符串时带来的内存重分配次数
    • 空间预分配
    • 惰性空间释放
  • 二进制安全
  • 兼容部分 C 字符串函数