SDS
,即 Simple Dynamic String,简单动态字符串。
Redis 没有直接使用 C 语言传统的字符串表示(以空字符结尾的字符数组),而是自己构建了一种名为简单动态字符串(simple dynamic string,SDS)的抽象类型,并将 SDS 用作 Redis 的默认字符串表示。
在 Redis 里面,C 字符串只会作为字符串字面量(string literal)用在一些 无须对字符串值进行修改的地方
,比如打印日志。
当 Redis 需要的不仅仅是一个字符串字面量,而是一个可以被修改的字符串值时,Redis 就会使用 SDS 来表示字符串值,比如在 Redis 的数据库里面,包含字符串值的 键值
对在底层都是由 SDS 实现的。
在 SDS 结构中包含:
buf len free
举例:
需要注意的是:SDS 遵循 C 字符串以空