首页/数据/Redis 进阶速查/五种结构选型对照表
本包目录(421 条)
数据结构与选型42 条
持久化56 条主从与哨兵51 条Cluster 集群44 条内存与管理99 条性能与排障129 条

五种结构选型对照表

先按访问模式选结构,再按数据规模评估内存:读取整对象用 Hash、排序榜单用 ZSet、去重集合用 Set、位标记用 Bitmap、消息流用 Stream。

Redis 进阶速查数据更新于 2026-10-12

结构选型速查

结构典型场景关键复杂度内存特点
String缓存对象、计数、分布式锁GET/SET 与 INCR 均为 O(1)按内容长度,数值可 int 编码
Hash用户属性、配置对象HGET/HSET O(1)小对象 listpack 紧凑,超限转 hashtable
List队列、时间线两端 O(1),中间 O(N)quicklist 节点化存储
Set标签、去重 IDSADD/SISMEMBER O(1)整数集合 intset 省内存
ZSet排行榜、延时队列ZADD 与查询 O(log N)跳表加字典,开销高于 List
Stream消息队列、事件日志XADD/XREAD 近似 O(1)按条目存储,需 MAXLEN 控制

快速确认编码

快速确认编码
redis-cli OBJECT ENCODING mykey
redis-cli MEMORY USAGE mykey
选型先看读写模式与规模:不要用 List 做排序、不要用 ZSet 存全量日志;大数据量优先评估分片与编码阈值。

易错点

  • 结构之间没有绝对优劣:排行榜用 ZSet、去重计数用 HLL/Bitmap,需要各自理解适用边界
  • 内存评估要包含键本身的字典与对象开销,小键数量巨大时这部分不可忽略

数据来源与参考

  • Redis 官方文档:数据类型总览(Data types)
  • Redis 官方文档:内存优化(Memory optimization)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌