客官,留下你的赞;成为我的粉丝,一起上车哦!评论区欢迎你的留言
Redis的底层是用C语言来实现的,在C语言中字符串的默认是以'\0'
标识结束,而Redis并没有采用这种传统的方法表示,而是自己构建了一种简单动态字符串(SDS)
来表示。
下面看一下什么是SDS
,SDS的代码定义
,以及在存储一个字符串"Redis"时 SDS和传统C的表示分别是怎么样
,使用SDS的好处是什么
SDS是什么
SDS(simple dynamic string) -简单动态字符串
,可以根据字符串的大小,动态分配空间。
SDS的定义
C和SDS表示字符串
- 存储字符串"Redis"时,传统C的表示
- 存储字符串"Redis"时,SDS的表示
- 使用SDS的好处
(1) 通过SDS获取字符串的长度时,时间复杂度为O(1)
,因为SDS已经定义了存储的字符串的长度(len
);如果通过传统的C的表示来获取字符串的长度,时间复杂度为O(n)
,其中n
是字符串的长度。
(2) 避免了溢出
(3)避免了内存重新分配
(4)支持存储二进制数据
下一章节,会详细的通过实例来分析使用SDS的好处。