Redis的ZSet底层数据结构

一、ZSet底层数据结构

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

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

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

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

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

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

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

相关推荐
C雨后彩虹11 小时前
任务最优调度
java·数据结构·算法·华为·面试
一条大祥脚15 小时前
26.1.9 轮廓线dp 状压最短路 构造
数据结构·c++·算法
cpp_250116 小时前
P2708 硬币翻转
数据结构·c++·算法·题解·洛谷
程序猿阿伟17 小时前
《Python复杂结构静态分析秘籍:递归类型注解的深度实践指南》
java·数据结构·算法
UIUI18 小时前
list_for_each_entry
linux·数据结构·链表
天意pt19 小时前
Blog-SSR 系统操作手册(v1.0.0)
前端·vue.js·redis·mysql·docker·node.js·express
豆沙沙包?20 小时前
2026年--Lc334-2130. 链表最大孪生和(链表转数组)--java版
java·数据结构·链表
Python_Study20251 天前
制造业数据采集系统选型指南:从技术挑战到架构实践
大数据·网络·数据结构·人工智能·架构
SmoothSailingT1 天前
408每日一题——数据结构
数据结构·考研·408
DemonAvenger1 天前
Redis慢查询分析与优化:性能瓶颈排查实战指南
数据库·redis·性能优化