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

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

相关推荐
曾阿伦6 分钟前
SQL 用法详解:从基础操作到进阶实战的全场景指南
数据库·sql
NCU_wander7 分钟前
操作系统/数据库和业务应用/中间件/硬件之间的关系
数据库·中间件
Navicat中国9 分钟前
如何从0到1完成函数设计 | Navicat 教程
数据库·函数·navicat
jnrjian13 分钟前
Oracle tablespace 对象迁移
数据库·oracle
chushiyunen14 分钟前
人工智能-function calling(函数调用)
数据库·ai编程
TDengine (老段)18 分钟前
TDengine IDMP 0-阅读指南
大数据·数据库·人工智能·时序数据库·tdengine·涛思数据
2501_9454248022 分钟前
机器学习与人工智能
jvm·数据库·python
Liu6288824 分钟前
Python单元测试(unittest)实战指南
jvm·数据库·python
赵孝正24 分钟前
Python分块计算(Chunk Processing)详解:解决大规模数据内存溢出的工程实践
数据库·人工智能·python