「44」redis-sds源码
SDS在redis中也算是用来存储string高效的做法,采用header+string的形式。
¶学完预期的目标:
- SDS 结构类型
- SDS 结构为何高效?
- 创建?
- 扩容?
- 释放?
- 复制?
- Join连接?
- Resize the allocation ??
- 其它
¶SDS结构
⚙️ 4种大小的定义,适配不同的场景需求。
¶why高效?
¶获取字符串长度:O(1)
sds: O(1)
c字符串: O(N)
¶防止内存溢出
sds: 封装好的函数,易于操作和检查
c字符串:操作不当易内存溢出
¶内存分配
sds: 空间预分配和惰性释放
c字符串:无此特性
¶二进制安全
sds: 按照二进制方式处理,因此无限制
c字符串:必须符合编码(ascii),限制c中不能保存图片和音频等
¶SDS API列表
待更新…