Redis 真正有辨识度,不在于 GET/SET,而在于它把常见业务结构做成了原生命令。
#1. Hash —— 一张业务档案卡
Hash 很适合表示“小对象”。
HSET user:1001 name "Ada" role "admin" city "Shanghai"
HGET user:1001 name
HGETALL user:1001类比:
Hash = 柜台上的一张档案卡
字段很多,但都属于同一个对象适合:
- 用户资料
- 商品概要信息
- 订单头信息
- Session 小对象
#2. List —— 一条排队传送带
LPUSH queue:email "task-1"
LPUSH queue:email "task-2"
RPOP queue:email或者做阻塞消费:
BLPOP queue:email 0类比:
List = 调度中心里的一条传送带
任务一个个压进去,再一个个取出来适合:
- 简单队列
- 最近操作列表
- 时间顺序消息
#3. Set —— 去重登记簿
SADD online:room:88 "user:1001"
SADD online:room:88 "user:1002"
SMEMBERS online:room:88
SISMEMBER online:room:88 "user:1001"
SREM online:room:88 "user:1002"类比:
Set = 一个不允许重复登记的名单册适合:
- 在线用户集合
- 标签集合
- 去重记录
- 关注关系的一部分建模
#4. Sorted Set —— 带分数的排名大屏
ZADD leaderboard:game:2026 980 "user:1001"
ZADD leaderboard:game:2026 1200 "user:1002"
ZRANGE leaderboard:game:2026 0 -1 WITHSCORES
ZREVRANGE leaderboard:game:2026 0 9 WITHSCORES类比:
Sorted Set = 一块按分数自动排序的大屏适合:
- 排行榜
- 优先级队列
- 按时间分数排序的集合
- 二级索引的一部分模式