【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字节)

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

相关推荐
聆听。。花开雨落7 小时前
mybatis的typeHandler 作用
数据库·mybatis
pxzsky7 小时前
PG17数据库安装中分分词插件:pg_jieba
数据库·postgresql·pg_jieba
她说可以呀8 小时前
Redis哨兵
数据库·redis·bootstrap
霸道流氓气质8 小时前
KMS 密钥管理服务(Key Management Service)原理与实践
linux·服务器·数据库
kirs_ur8 小时前
CXL(Compute Express Link)— 内存扩展的未来
服务器·数据库·性能优化
MonolithIoT10 小时前
实战方案|设备备件无人值守仓库:连续化产线运维备件 7×24 小时数字化管控方案
运维·网络·数据库
瞬间&永恒~10 小时前
【MySQL】4-6:在同一个主机上使用 systemd 运行多个 MySQL服务器
服务器·数据库·mysql
心机之蛙qee10 小时前
Redis的主从、哨兵及集群
数据库·redis·缓存
宵时待雨11 小时前
优选算法专题9:哈希表
数据结构·算法·散列表