广告
返回顶部
首页 > 资讯 > 数据库 >Redis 字符串实现:简单动态字符串-SDS与C字符串的区别
  • 265
分享到

Redis 字符串实现:简单动态字符串-SDS与C字符串的区别

摘要

2.1 SDS的定义 struct { //buf中已使用的字节数,等于SDS所保存字符串的长度 int len; //buf中未使用的字节长度 int free; //字节数组,用于保存

Redis 字符串实现:简单动态字符串-SDS与C字符串的区别

2.1 SDS的定义

struct {
    //buf中已使用的字节数,等于SDS所保存字符串的长度
    int len;
    //buf中未使用的字节长度
    int free;
    //字节数组,用于保存字符串
    char[] buf;
}

2.2 SDS与C字符串的区别

C字符串 SDS
获取字符串长度的复杂度为 O(N) 获取字符串长度的复杂度为O(1)
api安全,可能造成缓冲区溢出 API安全,杜绝了缓冲区溢出
修改字符串长度N次必然需要N次内存重分配 修改字符串长度N次最多发生N次内存重分配
只能保存文本 二进制安全,可以保存文本和二进制数据
可以使用所有中的函数 兼容部分C字符串函数,可使用部分中的函数
您可能感兴趣的文档:

--结束END--

本文标题: Redis 字符串实现:简单动态字符串-SDS与C字符串的区别

本文链接: https://www.lsjlt.com/news/5710.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作