薄情先生|hash、set、zset有多牛?从底层告诉你数据结构原理( 二 )


dict+skiplist的最终的存储结构如下
薄情先生|hash、set、zset有多牛?从底层告诉你数据结构原理
基于上图我们看一下skiplist几个关键对象的数据结构 , 方便大家理解
设置
薄情先生|hash、set、zset有多牛?从底层告诉你数据结构原理
可以看到一个是dict结构 , 主要key是其集合元素 , 而value就是对应分值 , 而zkiplist作为跳跃表 , 按照分值排序 , 方便定位成员
跳表
薄情先生|hash、set、zset有多牛?从底层告诉你数据结构原理
zskiplistNode
薄情先生|hash、set、zset有多牛?从底层告诉你数据结构原理
zskiplistNode中的robj指针指向具体元素 , 注意这个指针和dict中key指针指向同一个元素 , 其中backward后腿指针便于回溯
总结【薄情先生|hash、set、zset有多牛?从底层告诉你数据结构原理】本节内容主要讲解了Redis中hash、set、zset的底层原理 , 其中hash底层采用两种 , 分别是ziplist和hashtable , set底层也分别采用两种hashtable和inset , 其中inset也可以理解为数组 , zset底层分别是ziplist和dict+skiplist , 我们可以看到在节省内存、提高查询效率方面都体现了优秀的设计 , 这些都可以作为我们日后设计及开发中的宝贵经验 , 下一节我们将带领大家学习Redis在数据安全及性能保障方面的特点 。
大家看完有什么不懂的可以在下方留言讨论.谢谢你的观看 。 觉得文章对你有帮助的话记得关注我点个赞支持一下!链接: