Redis Key设计与Value存储
1. Key层级结构
标准格式
项目名:业务名:类型:ID
实际示例
Key | 含义 |
---|---|
heima:user:1 | 用户ID为1的数据 |
heima:product:1 | 商品ID为1的数据 |
heima:order:1 | 订单ID为1的数据 |
2. Key设计原则
原则 | 说明 | 示例 |
---|---|---|
使用冒号分隔 | 便于层级管理 | user:1 |
避免特殊字符 | 防止解析问题 | ❌ user@1 ✅ user:1 |
保持一致性 | 统一命名风格 | heima:user:id:1 |
3. Value存储方式
存储类型
数据类型 | 存储方式 | 示例 |
---|---|---|
简单值 | 直接存储 | "张三" |
复杂对象 | JSON字符串 | {"id":1,"name":"张三"} |
实际应用
Key | Value (JSON) | 说明 |
---|---|---|
heima:user:1 | {"id":1,"name":"Jack","age":21} | 用户对象 |
heima:product:1 | {"id":1,"name":"小米11","price":4999} | 商品对象 |
4. 最佳实践
Key设计
- 使用有意义的名称:user:profile:1
- 避免过深的层级:最多3-4层
- 使用一致的命名:project:module:type:id
Value存储
- 使用JSON格式:便于解析和调试
- 控制Value大小:建议<1MB
- 设置过期时间:SETEX key 3600 value
5. 常见错误
错误 | 问题 | 正确做法 |
---|---|---|
user1 | 难以理解 | user:1 |
user@1 | 特殊字符 | user:1 |
存储二进制对象 | 难以调试 | 序列化为JSON |
不设置过期时间 | 内存泄漏 | 设置合理TTL |