获得徽章 0
赞了这篇文章
#每天一个知识点# C语言使用长度为N+1的字符数组来表示长度为N的字符串,并且字符数组的最后一个元素总是空字符'\0'。
在redis的实现中,定义了SDS数据结构来实现动态字符串的存储,而不是C字符串。
SDS结构如下:
struct sdshdr {
//记录buf数组中已使用字节的数量
//等于SDS所保存字符串的长度
int len;
//记录buf数组中未使用字节的数量
int free;
//字节数组,用于保存字符串
char buf[];
};
SDS通过len实现了O(1)时间的数据长度查询。
通过free减少了修改字符串带来的内存重分配次数。
SDS是二进制安全的,可以保存文本或二进制数据,C字符串只能保存文本。
在redis的实现中,定义了SDS数据结构来实现动态字符串的存储,而不是C字符串。
SDS结构如下:
struct sdshdr {
//记录buf数组中已使用字节的数量
//等于SDS所保存字符串的长度
int len;
//记录buf数组中未使用字节的数量
int free;
//字节数组,用于保存字符串
char buf[];
};
SDS通过len实现了O(1)时间的数据长度查询。
通过free减少了修改字符串带来的内存重分配次数。
SDS是二进制安全的,可以保存文本或二进制数据,C字符串只能保存文本。
展开
评论
1
评论
点赞
#每天一个知识点# 找了好久才找到阿里官网放出来的大数据学习书籍——大数据之路:阿里巴巴大数据实践。有兴趣学习大数据的可以看下。
评论
点赞