美文网首页
1.1redis 内部数据结构-sds

1.1redis 内部数据结构-sds

作者: 橘子凉兮兮 | 来源:发表于2018-06-07 09:53 被阅读0次

    1.1.1sds作用

    • 实现字符串对象
    • 替代 char*类型

    1.1.2 sds结构

    typedef char *sds;
    struct sdshdr {
    // buf 已占用长度
    int len;
    // buf 剩余可用长度
    int free;
    // 实际保存字符串数据的地方
    char buf[];
    };
    

    1.1.3 sds优势

    • Redis 的字符串表示为 sds ,而不是 C 字符串(以 \0 结尾的 char*) 。
    • 对比 C 字符串,sds 有以下特性:

    1可以高效地执行长度计算(strlen
    2可以高效地执行追加操作(append)
    3二进制安全

    • sds 会为追加操作进行优化:加快追加操作的速度,并降低内存分配的次数,代价是多占用了一些内存,而且这些内存不会被主动释放。

    相关文章

      网友评论

          本文标题:1.1redis 内部数据结构-sds

          本文链接:https://www.haomeiwen.com/subject/gtpwsftx.html