首页 > 其他 > 详细

redis内部数据结构

时间:2014-03-19 15:16:11      阅读:487      评论:0      收藏:0      [点我收藏+]

  redis内部数据结构,是指redis在自身的构建中,基于这些特定的内部数据结构进行的。

  1. 简单动态字符串:Simple Dynamic String
  2. 双端链表
  3. 字典:Dictonary
  4. 跳跃表:skipList
  • 简单动态字符串


     

    • 用途
      • 实现字符串对象(StringObject);
      • 在 Redis 程序内部用作 char* 类型的替代品;
    • 数据结构
      • bubuko.com,布布扣
        typedef char *sds;
        
        
        struct sdshdr {
        
            // buf 已占用长度
            int len;
        
            // buf 剩余可用长度
            int free;
        
            // 实际保存字符串数据的地方
            char buf[];
        };
        bubuko.com,布布扣
    • 总结
      • Redis 的字符串表示为 sds ,而不是 C 字符串(以 \0 结尾的 char*)。
      • 对比 C 字符串, sds 有以下特性:
        • 可以高效地执行长度计算(strlen);
        • 可以高效地执行追加操作(append);
        • 二进制安全;
      • sds 会为追加操作进行优化:加快追加操作的速度,并降低内存分配的次数,代价是多占用了一些内存,而且这些内存不会被主动释放。

 

  • 双端链表


     

  • 字典


     

  • 跳跃表


     

redis内部数据结构,布布扣,bubuko.com

redis内部数据结构

原文:http://www.cnblogs.com/leeying/p/3611285.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!