「 REDIS 」 五月 10, 2019
Redis底层数据结构
文章字数 18k 阅读约需 16 mins.
简单动态字符串(SDS)
相较于C字符串的优点:
- 常数复杂度获取字符串长度。
- 杜绝缓冲区溢出。C字符串不记录自身长度容易造成缓冲区溢出,
SDS
修改时,API会自动将SDS
的空间扩展至执行修改所需的大小,然后才执行实际的修改操作。 - 减少修改字符串时带来的内存重分配次数。
SDS
采用空间预分配(增长操作
)和惰性释放(缩短操作
) - 二进制安全。C字符串只能保存文本数据,而不能保存像图片、音频、视频、压缩文件这样的二进制数据。
SDS
可以保存任意格式的二进制数据。 - 兼容部分C字符串函数,避免了不必要的代码重...