Redis常用的数据类型有哪些?Zset的底层数据结构是什么?

一、Redis常用数据类型

1. String(字符串)

最基本类型,存储文本、数字、二进制数据; 底层底层数据结构SDS。

2. Hash(哈希)

键值对集合,适合存储对象。

3. List(列表)

有序字符串列表,支持双端操作。

4. Set(集合)

无序唯一元素集合,支持集合运算。

5. Zset(有序集合)

按分数排序的唯一元素集合。

二、Zset底层数据结构

1. Zset底层数据结构

  • 核心结构:跳跃表 + 哈希表
  • 跳跃表(Skip List):维护有序性,支持O(log n)的范围查询
  • 哈希表(Hash Table):存储元素→分数映射,支持O(1)的分数获取

2. 内存优化结构

  • Redis 7.2之前:压缩列表(ZipList)。元素少时使用ZipList节省内存 。存在级联更新问题,影响性能 。
  • Redis 7.2之后:列表包(ListPack),替代ZipList,解决级联更新问题 。
  • 优势: 避免连锁更新,插入/删除性能更稳定;支持从尾部遍历,提升某些操作效率;内存布局更优化
  • 触发条件(默认配置):元素个数 ≤ 128 且 每个元素长度 ≤ 64字节;超过阈值自动转换为跳跃表+哈希表 。
相关推荐
wo_jack9 分钟前
C++ 入门笔记(十七):list 入门 —— 为什么 list 不能 sort?
数据结构·c++·面试·stl·list
鶴哥只手遮天30 分钟前
《Redis 8.10.3 深度剖析》系列 ·第 17 章. 一个迟到十六年的类型
redis·后端·开源
Lucifer三思而后行1 小时前
最近折腾了一下金仓数据库的备份恢复
数据库·备份恢复
草莓熊Lotso2 小时前
【C++ 基于微服务的即时通讯系统】文件存储子服务实战:UUID生成、文件IO封装与全接口单元测试
开发语言·网络·数据库·c++·微服务·架构·单元测试
zaizai10073 小时前
算法(左程云)1
数据结构
进击的荆棘3 小时前
MySQL——库的操作
数据库·mysql
2601_967980113 小时前
“小程序·云开发”上线 助力开发者的高效利器
数据库·存储管理·小程序云开发·云函数·开发者工具
zhangjw343 小时前
1-9 SELECT 查询基础:where、group by、having、order by、limit offset
数据库·postgresql·pg数据库
IT规划师3 小时前
Redis 数据类型全解 - 数据类型选型矩阵:一张表、一棵树、四条线(十二)
redis·数据类型