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

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

相关推荐
@大嘴巴子14 分钟前
MySQL知识回顾总结----数据库基础
数据库·mysql
lubiii_14 分钟前
SQL手工测试(MySQL数据库)
数据库·mysql·web安全·网络安全
凌辰揽月21 分钟前
Web后端基础(基础知识)
java·开发语言·前端·数据库·学习·算法
想你依然心痛26 分钟前
数据库入门:从原理到应用
数据库
20242817李臻2 小时前
20242817李臻-安全文件传输系统-项目验收
数据库·安全
行思理2 小时前
MongoDB慢查询临时开启方法讲解
数据库·mongodb
bbsh20992 小时前
WebFuture 升级提示“不能同时包含聚集KEY和大字段””的处理办法
数据库·sql·mysql·webfuture
Zfox_7 小时前
Redis:Hash数据类型
服务器·数据库·redis·缓存·微服务·哈希算法
呼拉拉呼拉7 小时前
Redis内存淘汰策略
redis·缓存
陈丹阳(滁州学院)9 小时前
若依添加添加监听容器配置(删除键,键过期)
数据库·oracle