【Redis】Redis Zset实现原理:跳表+哈希表的精妙设计

一、实现:

Zset有序集合是一种由 跳表(Skip List)+哈希表(Hash Table) 实现的数据结构。

二、特点功能:

Set特性+排序

三、跳表与哈希表分析:

Zset的实现由两个数据结构:

1.跳表(Skip List) :用于存储数据的排序和快速查找

2.哈希表:用于 存储成员->分数 映射,提供快速查找

当Zset元素数量较少 时,Redis会用 **压缩列表(Zip List)**来节省内存,下面两个条件必须都满足

  • 元素个数 ≤ zset-max-ziplist-entries(默认 128)
  • 元素成员名和分值的长度 ≤ zset-max-ziplist-value(默认64字节)

如果有任何一个不满足,还是跳表+哈希表作为底层实现

相关推荐
Lethehong6 小时前
Oracle 加个字段,目标库就报错?KFS 用“先拆后组“打通异构 DDL
数据库·oracle
Web极客码7 小时前
锁定真正的磁盘卡顿:我用 OpenCode 配合 eBPF 诊断 NVMe 队列深度延迟与 I/O 写放大
数据库·oracle
cspttty7 小时前
2027用户研究求职准备:应用统计学如何补齐研究设计与业务表达
大数据·数据库
我不会起名字3228 小时前
Redis 突然只能读不能写:MISCONF 报错的 3 类触发条件与 4 步恢复
运维·redis·持久化·排查·misconf
roman_日积跬步-终至千里8 小时前
【数据Agent论文·查询与语义|05】Spider:为什么换一个数据库,模型就不会查了?
数据库·数据分析
猫咪很可爱9 小时前
Oracle RAC 启动失败排查:私网通信与内核参数优化实战
运维·数据库·oracle
我不会起名字3229 小时前
Redis 从 0 到 1(九):主库宕机 30 秒自动切主——1 主 2 从 3 哨兵 + Go 客户端
redis·docker·sentinel·高可用·哨兵
XLYcmy9 小时前
《数字经济赋能城市低碳治理的路径研究检索报告》审阅与修改指导意见——基于完整检索报告体例的完整性诊断、学术规范核查与方法论纠偏 上
数据库·ai·chatgpt·文心一言·检索·知网·豆包
泡海椒9 小时前
JQuick-SQL 快速开始:注册内存表并执行查询
数据库·windows·sql
ss27310 小时前
PG实战笔记 | 09 PostgreSQL psql客户端基本操作
数据库·笔记·postgresql