首先我们先介绍一下,什么是SDS。
sds.h/sdshdr
struct sdshdr {
// 记录buf数组中已使用的字节长度
unsigned int len;
// 记录buf数组中未使用的字节长度
unsigned int free;
// java中的char占2个字节(Unicode表示);C语言中占1个字节(ASCII表示),由于汉字是2个字节,所以无法保存
char buf[];
};
【说明】最后一位遵循C字符串的空字符('\0')结尾的规则,目的是,可以直接使用C字符串的函数。其中len计数不包含‘\0’。
【为什么Redis使用SDS而不是C字符串】
【空间预分配】
【惰性空间释放】
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有