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

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

相关推荐
哆啦A梦的口袋呀1 小时前
pymongo库:简易方式存取数据
数据库·mongodb
城里有一颗星星2 小时前
6.删除-demo
数据库·go
失重外太空啦2 小时前
Mysql练习
android·数据库·mysql
像风一样自由20202 小时前
Navicat操作指南:MySQL数据库配置与Todo应用部署
数据库·mysql·adb
青竹易寒2 小时前
Redis技术笔记-从三大缓存问题到高可用集群落地实战
数据库·redis·笔记
两圆相切2 小时前
主流数据库的备份与还原差异对比
数据库·oracle
小云数据库服务专线3 小时前
GaussDB 数据库架构师修炼(四) 备份容量估算
数据库·数据库架构·gaussdb
跟着珅聪学java3 小时前
Oracle 索引实战教程
数据库·oracle
会编程的林俊杰4 小时前
Buffer Pool
数据库·mysql
zm4 小时前
演示数据库操作
jvm·数据库·oracle