欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-06-27 20:58:18
文章目录1. 存储结构2. 源码解析1. 存储结构在 有序集合对象 ZSet 的介绍中已经提到 ZSet 集合的底层存储结构主要有两种,其结构实例如下:OBJ_ENCODING_ZIPLIST当 ziplist 作为 zset 的底层存储结构时,每个集合元素使用两个紧挨在一起的压缩列表节点来保存,第一个节点保存元素值,第二个元素保存元素的分值,而且分值小的靠近表头,大的靠近表尾OBJ_ENCODING_SKIPLIST底层实现是跳跃表结合字典。每个跳跃表节点都保存一个集合元素,并按分值...

1. 存储结构

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

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

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

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

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

2. 源码解析

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

相关标签: Redis 数据结构