redis 数据结构 UML类图
2022-03-27 22:30:33 74 举报
基于redis3,包括redis的基础数据结构,UML类图
作者其他创作
大纲/内容
dict(字典)
- type : dictType 类型特定函数- privdata : void 私有数据- ht[2] : dictht 哈希表-trehashidx : int rehash索引
dictCreate 创建一个新的字典dictAdd 将给定的键值对添加到字典里面....
dictEngry(哈希表节点)
- key : void 键- v : union 值- next : dictEntry 指向下个哈希表节点,形成链表
sdshdr(简单动态字符串)
- len : int 记录buf数组中已使用字节的数量- free : int 记录buf数组中未使用字节的数量- buf: char[] 字节数组,用于保存字符串
+ sdsnew 创建一个包含给定C字符串的SDS+ sesempty :创建一个不包含任何内容的空SDS...
列表对象REDIS_LISTlist
intset(整数集合)
- encoding : uint32_t 编码方式- length : uint32_t 集合包含的元素数量- contents : int8_t[] 保存元素的数组
zskiplist(跳跃表)
- header : skiplistNode 表头- tail : skiplistNode 表尾- length : long 表中节点数量- level 表中层数最大的节点的层数
dictType(字典类型)
listNode(链表节点)
- prev : listNode 前置节点- next : listNode 后置节点- value : void 节点的值
zskiplistLevel(层)
- forward : zskiplistNode 前进指针- span : int 跨度
type
encoding
OBJECT ENCODING命令输出
对象
REDIS_STRING
REDIS_ENCODING_INT
int
使用整数值实现的字符串对象
REDIS_ENCODING_EMBSTR
embstr
使用embstr编码的简单动态字符串实现的字符串对象
REDIS_ENCODING_RAW
raw
使用简单动态字符串实现的字符串对象
REDIS_LIST
REDIS_ENCODING_ZIPLIST
ziplist
使用压缩列表实现的列表对象
REDIS_ENCODING_LINKEDLIST
linkedlist
使用双端链表实现的列表对象
REDIS_HASH
使用压缩列表实现的哈希对象
REDIS_ENCODING_HT
hashtable
使用字典实现的哈希对象
REDIS_SET
REDIS_ENCODING_INTSET
intset
使用整数集合实现的集合对象
使用字典实现的集合对象
REDIS_ZSET
使用压缩列表实现的有序集合对象
REDIS_ENCODING_SKIPLIST
skiplist
使用跳跃表和字典实现的有序集合对象
zskiplistNode(跳跃表节点)
- backward : zskiplistNode 后退指针- score : double 分值- obj : robj 成员对象- level : zskiplistLevel[] 层
有序集合对象REDIS_ZSETzset
type属性的值
TYPE命令的输出
字符串对象
列表对象
哈希对象
集合对象
有序集合对象
zipentry(压缩列表节点)
- previous_entry_length 记录压缩列表前一个节点的长度- encoding 记录节点content属性保存数据的类型和长度- content 保存节点的值
list(链表)
- head : listNode 表头节点- tail : listNode 表尾节点- len: long 链表所包含的节点数量
dictht(哈希表)
- table : dictEntry 哈希表数组- size : unsigned long 哈希表大小- sizemask : unsigned long 哈希表大小掩码- used : unsigned long 该哈希表已有节点的数量
redisObject( redis对象)
- type : usigned 4- encoding : unsigned 4- ptr : void 指向底层实现数据结构的指针
- type : usigned 4- encoding : unsigned 4- ptr : void 指向底层实现数据结构的指针,可能是字符串、链表、字典、跳跃表、整数集合等数据结构的具体实现
ziplist(压缩列表)
- zlbytes : uint32_t 记录整个压缩列表占用的内存字节数- zltail : uint32_t 记录表尾节点距离压缩列表的起始地址有多少字节- zllen : uint16_t 节点数量- entryx : 列表节点 压缩列表节点- zlend : uint8_t 用于标记压缩列表的末端
+ ziplistNew() : 创建一个新的压缩列表+ ziplistPush() : 创建一个包含给定值的新节点 ...
集合对象REDIS_SETset
哈希对象REDIS_HASHhash
字符串对象REDIS_STRINGstring
union(哈希表节点值)
- val : void- u64 : uint64_t- s64 : int64_t
encoding属性的值
编码所对应的底层数据结构
long类型整数
embstr编码的简单动态字符串
简单动态字符串
字典
双端链表
压缩列表
整数集合
跳跃表和字典
0 条评论
下一页