Redis 高级数据结构:二、简介

简介##

redisobject###

redis中的键、值都是一个对象,redisObject

typedef struct redisObject{
    unsigned type:4;
    unsigned encoding:4;
    void *ptr;
    ...
}

1.具体的数据结构保存在ptr中

2.具体的类型保存在type中,取值如下

类型常量 对象的名称 TYPE命令输出
REDIS_STRING 字符串对象 string
REDIS_LIST 列表对象 list
REDIS_HASH 哈希对象 hash
REDIS_SET 集合对象 set
REDIS_ZSET 有序集合对象 zset

3.具体的数据结构类型保存在encoding中,和 type关联如下

类型常量(type) 编码常量(encoding) 底层结构 Object命令的输出
REDIS_STRING REDIS_ENCODING_INT 使用整数值实现的字符串 int
REDIS_STRING REDIS_ENCODING_EMBSTR 使用embstr编码的sds 实现的字符串 embstr
REDIS_STRING REDIS_ENCODING_RAW 使用sds实现的字符串 raw
REDIS_LIST REDIS_ENCODING_ZIPLIST 使用压缩列表实现的列表对象 ziplist
REDIS_LIST REDIS_ENCODING_LINKEDLIST 使用双端链表实现的列表对象 linkedlist
REDIS_HASH REDIS_ENCODING_ZIPLIST 使用压缩列表实现的哈希对象 ziplist
REDIS_HASH REDIS_ENCODING_HT 使用字典实现的哈希对象 hashtable
REDIS_SET REDIS_ENCODING_INTSET 使用整数集合实现的集合对象 intset
REDIS_SET REDIS_ENCODING_HT 使用字典实现的集合对象 hashtable
REDIS_ZSET REDIS_ENCODING_ZIPLIST 使用压缩列表实现的有序集合对象 ziplist
REDIS_ZSET REDIS_ENCODING_SKIPTLIST 使用跳跃表和字典实现的有序集合对象 skiplist
原文地址:https://www.cnblogs.com/june777/p/11911001.html