每天读一点redis之SDS字符串
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 等
No Comments filed.