结构选型速查
| 结构 | 典型场景 | 关键复杂度 | 内存特点 |
|---|---|---|---|
| String | 缓存对象、计数、分布式锁 | GET/SET 与 INCR 均为 O(1) | 按内容长度,数值可 int 编码 |
| Hash | 用户属性、配置对象 | HGET/HSET O(1) | 小对象 listpack 紧凑,超限转 hashtable |
| List | 队列、时间线 | 两端 O(1),中间 O(N) | quicklist 节点化存储 |
| Set | 标签、去重 ID | SADD/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 存全量日志;大数据量优先评估分片与编码阈值。