C字符串与SDS之间的区别

Posted 本站大佬

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C字符串与SDS之间的区别相关的知识,希望对你有一定的参考价值。

sds.h/sdshdr
struct sdshdr{
	int len;
	int free;
	char buf[];
};

C字符串SDS
获取字符串长度的复杂度为O(n)获取字符串长度的复杂度为O(1)
API是不安全的,可能会造成缓冲区溢出API是安全的,不会造成缓冲区溢出
修改字符串长度N次必然需要执行N次内存重分配修改字符串长度N次最多需要执行N次内存重分配
只能保存文本数据可以保存文本或者二进制数据
可以使用所有<string.h>库中的函数可以使用一部分<string.h>库中的函数

以上是关于C字符串与SDS之间的区别的主要内容,如果未能解决你的问题,请参考以下文章

《Redis设计与实现》读书笔记

Redis学习笔记----简单动态字符串

SDS 链表

redisredis 基本数据结构之String

redisredis 基本数据结构之String

字符串插值和片段之间有啥显着区别吗?