SDS simple dynamic string
redis 默认字符串

结构:

struct sdshdr{
    int len;
    int free;
    char buf[];
};

打印 printf("%s",s->buf);

几点优势
1.O(1)获取字符串长度
-->sds api 维护sds 长度
2.杜绝缓冲区溢出
sdscat(拼接),不够自动扩展
3.减少修改字符串带来的内存重分配次数
1)空间预分配 <1M free:used = 1:1 >1M 追加分配1M
2)惰性空间释放(不立即释放)
4.二进制安全
len 保证不被类似C 空串误导
5.兼容部分C字符串函数
<string.h> /strcasecmp
strcat 等

« 简单的三级联动 每天读一点redis之字典哈希表 »