Redis中的String是基于c语言中的字符数组构建的一种结构体。
主要包含len,content,以及capacity。
数据结构
struct SDS<T> {
T capacity; // 数组容量 使用泛型表示的
T len; // 数组长度 使用泛型表示的
byte flags; // 特殊标识位,不理睬它
byte[] content; // 数组内容 字节数组
}
1.redis中的String并不是以\0结束,而是根据len来决定文件是否结束。其主要目的是为了存储非String的数据,例如图片,影像等二进制数据。
2.由于String结构体中存储了长度,所以在获得长度的时间复杂度为O1。
3.String在扩容的时候,如果数据的长度小于10MB则,每次扩容为之前以后数据的2倍。如果超过10MB则每次只增加1MB的长度。