Redis 没有 SQL 表名和字段名替你兜底,所以 key 命名规范本身就是架构设计。
一个顺手的命名风格通常像这样:
业务域:对象类型:对象id[:子维度]例如:
SET user:1001:name "Ada"
HSET user:1001 profile:name "Ada" profile:role "admin"
SET session:token:abc123 "{\"uid\":1001}"
INCR article:88:views
ZADD leaderboard:season:2026 980 "user:1001"
XADD stream:orders * orderId 9001 status created你最好尽量做到:
- 同一业务域用同一前缀
- 能看 key 就知道它的用途
- key 里带上业务边界,而不是乱起名字
- 重要 key 预留 TTL 策略
坏例子:
a
cache1
temp_user_data
data_2026_new_final好例子:
cache:product:sku:10088
session:user:1001
rate_limit:login:ip:1.2.3.4
stream:payment_events
lock:inventory:sku:10088Redis 到后期会不会乱,很大程度上取决于你有没有把 key 当成正式建模对象。