Redis 数据结构核心模型笔记
Redis 是 key–value 结构 Redis 不支持混合数据结构。 例如: 不能出现: Redis 底层实现是: 一个 key 只能绑定一个结构对象。 ❌ 不支持真正嵌套。例如: 这是不可能的。因为 list 的元素本质上只是字符串(binary-safe string)。 用 key 引用 key,示例: 本质:list 里存的是其他 key 的名字,这是 Redis 设计复杂结构的标准方式。 把复杂结构转成 JSON 作为 string 存储: 缺点:Redis 数据结构核心模型笔记
一、Redis 本质模型
string
list
hash
set
zset二、一个 key 只能对应一种数据类型
key → 单一数据结构实例user:list → list
user:profile → hash
url:dupefilter → set
rank:score → zset❌ 一个 key 同时是 list + hash + set
❌ list 里面直接嵌套 hash / set / zset三、为什么不能混合?
key → 某种具体数据结构对象四、Redis 是否支持"嵌套结构"?
list 里面放 hash
list 里面放 set五、如何实现"复杂结构"?
方法 1:多 key 组合(推荐)
task:list → [ task:1, task:2, task:3 ]
task:1 → hash
task:2 → set
task:3 → zset方法 2:序列化存储(不推荐)
{
"type": "hash",
"data": {...}
}六、核心理解
✅ Redis = 简单结构 + 多 key 组合
❌ Redis ≠ 嵌套对象数据库七、一句话总结
Redis 中一个 key 只能对应一种数据类型;value 可以是 string / list / hash / set / zset;不支持混合或嵌套结构;复杂结构必须通过多个 key 组合实现。