Skip to content

Redis 数据类型与典型应用场景

知识背景

Redis 是内存型键值存储,常用作 缓存、会话、排行榜、限流、消息队列(轻量) 等。其值支持多种 数据结构,不同结构对应不同命令与时间复杂度;选错类型会导致性能或内存暴涨。


知识详解与通俗解释

1. String

二进制安全字符串;可存 JSON、计数器、分布式锁(配合 SET NX EX)
INCR 原子自增适合 计数、限流

2. Hash

字段-值映射,适合 对象属性(如用户信息),比多个 String 省 key前缀、可单字段更新。

3. List

双向链表语义(实现细节以版本为准),LPUSH/RPOP 可做 简单队列;注意阻塞消费可用 BLPOP

4. Set

无序唯一集合,去重、共同关注(交集)、抽奖 等;SADDSISMEMBER O(1) 级别操作常用。

5. Sorted Set(ZSet)

score 的有序集合,排行榜、延时队列(score 用时间戳) 经典结构;范围查询 ZRANGEBYSCORE

6. 其他(了解)

Bitmap、HyperLogLog、Stream 等面向统计与消息流;选型前读官方复杂度说明。

通俗说:String 像便签;Hash 像一行对象列;List 像排队;Set 像抽奖箱;ZSet 像带分数的排名表。


总结

  • 选型问三个问题:是否有序、是否去重、访问模式是点查还是范围
  • 复杂业务可 JSON 放 String 简单起步,但大对象与部分更新要考虑 Hash + 压缩 或拆 key。
  • 具体命令与内存上限需结合 Redis 版本与配置 文档。