首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

Redis数据结构和内存分配

OBJ_ENCODING_INT:表示成数字。最多标识long的最大值,超过转为OBJ_ENCODING_RAW。 OBJ_ENCODING_RAW: string原生表示方式。 OBJ_ENCODING_EMBSTR: 功能同RAW,只是数据是存储在一块连续的内存中,embstr创建和释放字符串操作内存的次数比RAW的2次降低为1次,修改将重新分配内存。 OBJ_ENCODING_HT: 类似hashtable,表示成dict。 OBJ_ENCODING_ZIPMAP: 是个旧的表示方式,已不再用。 OBJ_ENCODING_LINKEDLIST:双向列表,3.2以下版本使用 OBJ_ENCODING_ZIPLIST: 表示成ziplist。 OBJ_ENCODING_INTSET:表示成整数数组。用于set数据类型。 OBJ_ENCODING_SKIPLIST:表示成skiplist跳跃表。用于zset数据结构。 OBJ_ENCODING_QUICKLIST:表示成quicklist。用于list数据类型。

02

Redis底层数据结构

type 对象的类型 类型常量对象的名称 REDIS_STRING 字符串对象 REDIS_LIST 列表对象 REDIS_HASH 哈希对象 REDIS_SET 集合对象 REDIS_ZSET 有序集合对象 ptr 指针 指向实际存储的对象的指针 encoding encoding 表示 ptr 指向的具体数据结构,即这个对象使用了什么数据结构作为底层实现。 编码常量编码所对应的底层数据结构 REDIS_ENCODING_INT long类型的整数 REDIS_ENCODING_EMBSTR enbstr编码的简单动态字符串 REDIS_ENCODING_RAW 简单动态字符串 REDIS_ENCODING_HT 字典 REDIS_ENCODING_LINKEDLIST 双向链表 REDIS_ENCODING_ZIPLIST 压缩列表 REDIS_ENCODING_INTLIST 整数集合 REDIS_ENCODING_SKIPLIST 跳表 每种类型的对象都至少使用了两种不同的编码,对象和编码的对应关系如下

02
领券