当前位置: 移动技术网 > IT编程>数据库>Redis > Redis 6.0 源码阅读笔记(6)- ZSet 数据类型源码分析 -- TBD

Redis 6.0 源码阅读笔记(6)- ZSet 数据类型源码分析 -- TBD

2020年09月29日  | 移动技术网IT编程  | 我要评论
文章目录1. 存储结构2. 源码解析1. 存储结构在 有序集合对象 ZSet 的介绍中已经提到 ZSet 集合的底层存储结构主要有两种,其结构实例如下:OBJ_ENCODING_ZIPLIST当 ziplist 作为 zset 的底层存储结构时,每个集合元素使用两个紧挨在一起的压缩列表节点来保存,第一个节点保存元素值,第二个元素保存元素的分值,而且分值小的靠近表头,大的靠近表尾OBJ_ENCODING_SKIPLIST底层实现是跳跃表结合字典。每个跳跃表节点都保存一个集合元素,并按分值

1. 存储结构

有序集合对象 ZSet 的介绍中已经提到 ZSet 集合的底层存储结构主要有两种,其结构示例如下:

  • OBJ_ENCODING_ZIPLIST
    当 ziplist 作为 zset 的底层存储结构时,每个集合元素使用两个紧挨在一起的压缩列表节点来保存,第一个节点保存元素值,第二个元素保存元素的分值,而且分值小的靠近表头,大的靠近表尾

在这里插入图片描述

  • OBJ_ENCODING_SKIPLIST
    底层实现是跳跃表结合字典。每个跳跃表节点都保存一个集合元素,并按分值从小到大排列,每个节点的 ele 属性保存了元素的值,score属性保存分值;字典的每个键值对保存一个集合元素,元素值包装为字典的键,元素分值保存为字典的值。注意集合的元素成员和分值是共享的,跳跃表和字典通过指针指向同一地址,不会浪费内存

    在这里插入图片描述

2. 源码解析

本文地址:https://blog.csdn.net/weixin_45505313/article/details/108867474

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网