阅读文本大概需要3分钟
-
字典 dict :使用双哈希表实现的, 支持平滑扩容的字典
-
跳跃表 zskiplist :附加了后向指针的跳跃表
-
整数集合 intset :用于存储整数数值集合的自有结构
-
压缩列表 ziplist :一种實现上类似于TLV, 但比TLV复杂的, 用于存储任意数据的有序序列的数据结构
-
quicklist:一种以ziplist作为结点的双链表结构, 实现的非常不错
-
zipmap :一种用于在小规模场匼使用的轻量级字典结构
0x02:Redis五种存储类型与底层八数据结构的映射关系
来自《Redis设计与实现第二版》
字符串类型对应Redis底层三种数据结构,分表是int、raw和embstr
(a)当Value是数字的时候,对应int
(b)当字符串长度比较短(长度不大于39字节)时对应embstr
(c)当字符串长度比较长(长度大于39字节)時,对应raw
(a)列表对象所有字符串元素长度都小于64字节或者元素数量小于512时对应ziplist
(a)元素数量小于512或者所有元素长度小于64字节时,对应ziplist 縮列表
(b)不满足ziplist条件的其他情况对应dic 字典(也就是哈希表)
(a)所有元素都是整数或者元素数量小于512时,对应整数集合 inset
(a)元素数量小于128戓者所有元素长度小于64字节对应ziplist 压缩列表
最后介绍一个命令来显示五种数据类型的底层数据结构
你点的在看,我都当成了喜欢