Redis的ZSet底层数据结构

一、ZSet底层数据结构

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

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

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

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

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

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

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

相关推荐
wangmengxxw几秒前
SpringAi-Advisor续
redis·springai·advisor
Remember_99315 分钟前
【数据结构】深入理解优先级队列与堆:从原理到应用
java·数据结构·算法·spring·leetcode·maven·哈希算法
Shirley~~1 小时前
leetcode移除元素
javascript·数据结构·算法
wen__xvn1 小时前
基础数据结构第08天:栈(实战篇)
数据结构·c++·算法
wen__xvn2 小时前
基础算法集训第04天:选择排序和冒泡排序
数据结构·算法·leetcode
充值修改昵称2 小时前
数据结构基础:二叉树高效数据结构的奥秘
数据结构·python·算法
*才华有限公司*3 小时前
# 彻底解决 RedisReadOnlyException:从「只读从节点」到「独立主节点」的实战指南
redis
wen__xvn4 小时前
基础算法集训第01天:线性枚举
数据结构·c++·算法
Remember_9934 小时前
【LeetCode精选算法】二分查找专题一
java·数据结构·算法·spring·leetcode·哈希算法
成为你的宁宁4 小时前
【Zabbix 监控 Redis 实战教程(附图文教程):从 Zabbix-Server 部署、Agent2 安装配置到自带监控模板应用全流程】
数据库·redis·zabbix