美文网首页Redis源码学习笔记
Redis源码学习之类型

Redis源码学习之类型

作者: lixin_karl | 来源:发表于2019-05-06 17:26 被阅读0次

    说明

    redis内部的字符串对象,redis类型之REDIS_STRING 此种类型有三种编码方式分别为:OBJ_ENCODING_RAW,OBJ_ENCODING_INT和OBJ_ENCODING_EMBSTR。
    OBJ_ENCODING_RAW redisObj sds所需要的内存分两次申请。
    OBJ_ENCODING_INT 当所传入的value是long类型时 int编码。
    OBJ_ENCODING_EMBSTR 一次性把redisObj sds 所需要的内存申请到。

    t_hash.c
    OBJ_HASH类型对应以下两种编码
    OBJ_ENCODING_ZIPLIST:当hash表的所有键值对字符串长度都小于64字节并且数量小于512的
    情况下使用压缩链表编码,否则使用OBJ_ENCODING_HT编码。

    t_list.c
    OBJ_LIST类型使用OBJ_ENCODING_QUICKLIST编码

    t_set.c
    OBJ_SET类型使用OBJ_ENCODING_INTSET编码,所有元素都为数字且小于64字节,元素个数小于等于512,
    否则使用OBJ_ENCODING_HT编码

    t_zset.c
    OBJ_ZSET类型使用OBJ_ENCODING_SKIPLIST,而在元素个数小于128每个元素所占字节数
    小于等于64字节时,使用OBJ_ENCODING_ZIPLIST编码。

    相关文章

      网友评论

        本文标题:Redis源码学习之类型

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