Redis的ZSet底层数据结构

一、ZSet底层数据结构

c 复制代码
typedef struct zset{
	// 跳表
	zskiplist *zsl;
	// 字典
	dict *dic;
}

zset类型的底层数据结构是由压缩列表或跳表、**字典(哈希表)**实现的。

  • 如果zset中元素个数小于128个,并且每个元素的值小于64字节时,redis采用压缩列表作为zset的底层数据结构;
  • 在不满足上述条件时,redis采用跳表作为zset的底层数据结构。

zset 使用跳表和哈希表,既可以高效地进行范围查询,也能高效地进行单点查询。

二、跳表和哈希表是怎么组织的?

跳表和哈希表各自按照自己的方式存放,但是会指针会指向同一份数据。

zset在执行数据插入或数据更新时,会依次在跳表和哈希表中插入或更新相应的数据,从而保证跳表和哈希表中数据的一致。

相关推荐
Rabitebla1 分钟前
从零实现 C++ List:带头循环双向链表的每一个细节
数据结构·c++·算法·leetcode·链表·list
Devin~Y2 分钟前
大厂Java面试实录:Spring Boot/JPA/Redis/Kafka/K8s 可观测性 + Spring AI RAG/Agent(小Y翻车现场)
java·spring boot·redis·mybatis·hibernate·spring mvc·jpa
庞轩px20 分钟前
第六篇:Redis Cluster——分布式缓存的进阶方案
redis·分布式·缓存
Allen_LVyingbo30 分钟前
面向医疗群体智能的协同诊疗与群体决策支持系统(下)
开发语言·数据结构·windows·python·动态规划
phltxy1 小时前
Redis:从入门到精通的第一步
数据库·redis·缓存
@Ma1 小时前
详细解读Redis作者antirez开源的ds4项目,ds4.c — DeepSeek V4 Flash 本地推理引擎(中文文档)
c语言·redis·开源
炸膛坦客12 小时前
嵌入式 - 数据结构与算法:(1-7)数据结构 - 顺序表和链表的对比
数据结构·链表
hoiii18713 小时前
基于栅格法的机器人工作空间划分系统
数据结构·机器人
工业甲酰苯胺15 小时前
Redis--集群搭建与主从复制原理
数据库·redis·php
人道领域17 小时前
【黑马点评日记】:用户签到功能详解——从Bitmap入门到避坑指南
java·数据库·redis·后端