简单动态字符串(Simple Dynamic String,SDS)
Redis没有直接使用C语言传统的字符串,而是自己构建了一种名为简单动态字符串(Simple dynamic string,SDS)的抽象类型,并将SDS用作Redis的默认字符串表示。
其实SDS等同于C语言中的char * ,但它可以存储任意二进制数据,不能像C语言字符串那样以字 符’\0’来标识字符串的结 束,因此它必然有个长度字段。
定义
优点
获取字符串长度的复杂度为O(1)。
杜绝缓冲区溢出。
减少修改字符串长度时所需要的内存重分配次数。
二进制安全。
兼容部分C字符串函数。
它具有很常规的 set/get 操作,value 可以是String也可以是数字,一般做一些复杂的计数功能的缓存。