1.1.1sds作用
- 实现字符串对象
- 替代 char*类型
1.1.2 sds结构
typedef char *sds;
struct sdshdr {
// buf 已占用长度
int len;
// buf 剩余可用长度
int free;
// 实际保存字符串数据的地方
char buf[];
};
1.1.3 sds优势
- Redis 的字符串表示为 sds ,而不是 C 字符串(以 \0 结尾的 char*) 。
- 对比 C 字符串,sds 有以下特性:
1可以高效地执行长度计算(strlen
2可以高效地执行追加操作(append)
3二进制安全
- sds 会为追加操作进行优化:加快追加操作的速度,并降低内存分配的次数,代价是多占用了一些内存,而且这些内存不会被主动释放。
网友评论