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字节;超过阈值自动转换为跳跃表+哈希表 。
相关推荐
IvorySQL11 小时前
PostgreSQL 日报|不重启动态修改 shared_buffers(9 月 8 日)
数据库·postgresql
这个DBA有点耶12 小时前
2026年做数据库开发,国产数据库已经是绕不开的选项了
数据库·dba·敏捷开发
这个DBA有点耶12 小时前
COUNT慢不是因为用了*,是这5个原因——1000万行数据实测+执行计划深度解析
数据库·mysql·算法
老周聊架构12 小时前
Ontology:Palantir 架构真正的核心,不是数据库也不是知识图谱
数据库·架构·知识图谱
天衍四九-12 小时前
第一章:从 LLM 到 Agent —— DeepSeek Harness 入门
网络·数据库·人工智能·python
kyrie_sakura12 小时前
MySQL数据库学习笔记2--系统函数(分组,单行,窗口函数)
数据库·学习·mysql
我不是程序员三三13 小时前
如何监控电脑|企业终端行为监控概念科普与落地方法论
数据库·电脑·php
带多刺的玫瑰13 小时前
Leecode#26刷题之删除有序数组中的重复项
数据结构·算法·leetcode
lhldsg14 小时前
全民健身解决方案软件开发实战:从架构设计到部署指南
java·前端·数据库·小程序
我是大猴子14 小时前
线上耗时问题排查
数据库