Redis数据结构和对象三

2022-12-26,,

1.Redis 对象系统

Redis用到的所有主要数据结构,简单动态字符串(SDS)、双端链表、字典、压缩列表、整数集合、跳跃表。

Redis并没有直接使用这些数据结构来实现键值对数据库,而是基于这些数据结构创建了一个对象系统,这个系统包含字符串对象、列表对象、哈希对象、集合对象和有序集合对象这五种类型的对象,而每种对象又通过不同的编码映射到不同的底层数据结构。

typedef struct redisObiect{

//类型

unsigned type:4;

//编码

unsigned encoding:4;

//指向底层数据结构的指针

void *ptr;

}

类型:type

对象的type属性记录了对象的类型,这个属性值是常量之一

REDIS_STRING=字符串对象,REDIS_LIST=列表对象,REDIS_HASH=哈希对象,REDIS_SET=集合对象,REDIS_ZSET=有序集合对象

编码和底层实现

对象的ptr指针指向对象的底层实现的数据结构,而这些数据结构由对象的encoding属性决定的。下列常量之一

编码常量 编码对应的底层数据结构
REDIS_ENCODING_INT Long类型整数
REDIS_ENCODING_EMBSTR embstr编码的简单动态字符串
REDIS_ENCODING_RAW 简单动态字符串
REDIS_ENCODING_HT 字典
REDIS_ENCODING_LINKEDLIST 双端链表
REDIS_ENCODING_ZIPLIST 压缩列表
REDIS_ENCODING_INTSET 整数集合
REDIS_ENCODING_SKIPLIST 跳跃表和字典

Redis数据结构和对象三的相关教程结束。

《Redis数据结构和对象三.doc》

下载本文的Word格式文档,以方便收藏与打印。