Redis原理浅析

如何有效的学习?我觉得诀窍只有一个,多接触多看多读多想,然后不断的review and review。

1.redis数据结构

  1.1 redis字符串

    众所周知redis是用c写的,那么redis的字符串实现是否也跟c一样呢?答案是false。

    redis的字符串实现,是在c字符的基础上封装的,示例代码如下:

    struct sdshdr{

        int len;

        int free;

        char buf[];

    }

    可以看到字符串的实现有三个变量:一个字符数组,还有int类型的free和len。数组是用来存储字符的自不必多说,那么len和free是干嘛用的呢?

    其实,redis字符串的高效性,主要就是由这两个变量来控制实现的。len表示当前字符数组的存储长度,即存储的字节数,free表示当前空余字节数。举个例子:

    字符串“Richard”,len = 7,free=2。什么意思呢?就是说当前字符串空余两个长度,占用八个长度(c中\0表示空字符,用来表示结尾)。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值