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字节;超过阈值自动转换为跳跃表+哈希表 。
相关推荐
李广坤4 小时前
MySQL 大表字段变更实践(改名 + 改类型 + 改长度)
数据库
爱可生开源社区1 天前
2026 年,优秀的 DBA 需要具备哪些素质?
数据库·人工智能·dba
随逸1771 天前
《从零搭建NestJS项目》
数据库·typescript
加号32 天前
windows系统下mysql多源数据库同步部署
数据库·windows·mysql
シ風箏2 天前
MySQL【部署 04】Docker部署 MySQL8.0.32 版本(网盘镜像及启动命令分享)
数据库·mysql·docker
李慕婉学姐2 天前
Springboot智慧社区系统设计与开发6n99s526(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
数据库·spring boot·后端
琢磨先生David2 天前
Day1:基础入门·两数之和(LeetCode 1)
数据结构·算法·leetcode
百锦再2 天前
Django实现接口token检测的实现方案
数据库·python·django·sqlite·flask·fastapi·pip
tryCbest2 天前
数据库SQL学习
数据库·sql
jnrjian2 天前
ORA-01017 查找机器名 用户名 以及library cache lock 参数含义
数据库·oracle