2.1 SDS的定义 struct { //buf中已使用的字节数,等于SDS所保存字符串的长度 int len; //buf中未使用的字节长度 int free; //字节数组,用于保存
struct {
//buf中已使用的字节数,等于SDS所保存字符串的长度
int len;
//buf中未使用的字节长度
int free;
//字节数组,用于保存字符串
char[] buf;
}
C字符串 | SDS |
获取字符串长度的复杂度为 O(N) | 获取字符串长度的复杂度为O(1) |
api不安全,可能造成缓冲区溢出 | API安全,杜绝了缓冲区溢出 |
修改字符串长度N次必然需要N次内存重分配 | 修改字符串长度N次最多发生N次内存重分配 |
只能保存文本 | 二进制安全,可以保存文本和二进制数据 |
可以使用所有 |
兼容部分C字符串函数,可使用部分 |
--结束END--
本文标题: Redis 字符串实现:简单动态字符串-SDS与C字符串的区别
本文链接: https://www.lsjlt.com/news/5710.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-05-03
2024-05-03
2024-05-03
2024-05-03
2024-05-03
2024-05-03
2024-05-03
2024-05-03
2024-05-03
2024-05-03
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0