SDS(simple dynamic string)简单动态字符串的优点是什么?
优点
常数复杂度获取字符串长度bash
因为 len 属性的存在,咱们获取 SDS 字符串的长度只须要读取 len 属性,时间复杂度为 O(1)。而对于 C 语言,获取字符串的长度一般是通过遍历计数来实现的,时间复杂度为 O(n)。经过 strlen key 命令能够获取 key 的字符串长度。
杜绝缓冲区溢出数据结构
在 C 语言中使用 strcat 函数来进行两个字符串的拼接,一旦没有分配足够长度的内存空间,就会形成缓冲区溢出。而对于 SDS 数据类型,在进行字符修改的时候,会首先根据记录的 len 属性检查内存空间是否知足需求,若是不知足,会进行相应的空间扩展,而后在进行修改操做,因此不会出现缓冲区溢出。
减小修改字符串的内存从新分配次数函数
二进制安全ui
兼容部分C字符串函数
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。