redis仅仅在表示字符串常量时候使用C字符串
字符串的表示:
struct sdshdr {
// 记录buf数组中已使用字节的数量
// 等于SDS所保存字符串的长度
unsigned int len;
// 记录buf数组中未使用字节的数量
unsigned int free;
// 字节数组,用于保存字符串
char buf[];
};
优点:1,保留长度,不用每次读取长度的时候都需要遍历。
2.避免缓冲区溢出。
3.减少字符串修改时内存重新分配的次数。
空间预分配情况下,redis的分配策略带来了一倍的内存占用
惰性空间释放的情况下,缩短字符串后,又重新增长字符串,是否继续遵循空间预分配策略
redis分析-SDS
最新推荐文章于 2022-03-27 19:00:33 发布