Redis没有直接使用C语言传统的字符串表示,而是自己构建了一种名为简单动态字符串(SDS)的抽象类型;
该类型相比较于c字符串主要由以下优点:
(1)可以在常数复杂度获取字符串长度(由于其内部实现定义了获取长度的属性);
(2)杜绝了因为内存分配问题(像strcat等函数)造成的缓冲区溢出问题;
(3)减少了修改字符串长度时所需要的内存重分配次数;
(4)二进制安全(能保存空字符等,可以保存像图形、音频、视频、压缩文件等二进制文件);
(5)兼容部分C字符串函数(由于会在字符串末尾类似c字符串自动添加‘\0’做结束符一样);