站长网_站长创业_站长主页_站长之家_易采站长站

会员投稿 投稿指南 站长资讯通告: redis中的数据结构和编码详解
搜索:
您的位置: 主页 > 教程 > 数据库 > Redis > » 正文

redis中的数据结构和编码详解

来源: 易采站长站

redis中的数据结构和编码:

    背景:

        1>redis在内部使用redisObject结构体来定义存储的值对象。         2>每种类型都有至少两种内部编码,Redis会根据当前值的类型和长度来决定使用哪种编码实现。         3>编码类型转换在Redis写入数据时自动完成,这个转换过程是不可逆的,转换规则只能从小内存编码向大内存编码转换。

    源码:

        值对象redisObject:

            typedef struct redisObject {
                unsigned type:4;                /* 对象类型 */
                unsigned encoding:4;            /* 内部编码 */
                unsigned lru:LRU_BITS;     /* lru time (relative to server.lruclock) */
                int refcount;                    /* 引用计数器,内存回收机制就是基于该值实现的 */
                void *ptr;                        /* 若要存储的是整数值则直接存储数据,否则表示指向数据的指针 */
            } robj;

        类型type:

            说明:查看当前键的类型:type key

            #define OBJ_STRING 0     /*字符串对象*/
            #define OBJ_LIST 1        /*列表对象*/
            #define OBJ_SET 2        /*集合对象*/
            #define OBJ_ZSET 3        /*有序集合对象*/
            #define OBJ_HASH 4        /*哈希对象*/

最新图文资讯
1 2 3 4 5 6
易采站长站 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 人才招聘 - 帮助 -