Redis 数据类型
学习 Redis 时,先根据数据的关系和访问方式选择类型,再学习对应命令。本页是数据类型的基础入口;动手前可阅读连接与首次运行。
本页侧重类型对照和选型。plus 中每种类型都有独立文章:
- String(字符串):会话、计数、缓存与锁。
- Hash(哈希):对象字段、背包与保底计数。
- List(列表):聊天历史、序列与队列。
- Set(集合):好友、名单与兑换码。
- Sorted Set(有序集合):排行榜、匹配与限流。
- Stream(消息流):事件消费与比赛结果入库。
- Bitmap(位图):日活、签到与留存。
- HyperLogLog(基数统计):活动参与人数。
- Geo(地理位置):附近玩家与经纬度查询。
常用数据类型对照
| 类型 | 数据特点 | 典型用途 | 本页讲解 |
|---|---|---|---|
| String(字符串) | 一个字节串 | 简单值、计数、序列化对象 | String |
| Hash(哈希) | 字段和值的集合 | 按字段访问对象 | Hash |
| List(列表) | 有顺序、允许重复的元素序列 | 两端插入和弹出 | List |
| Set(集合) | 成员唯一、不保证顺序 | 去重、成员判断、集合运算 | Set |
| Sorted Set / ZSet(有序集合) | 成员唯一,按分数排序 | 排行榜、按分数查询 | Sorted Set |
这五种是常用入门类型,并非 Redis 的全部能力。完整分类见 Redis 官方数据类型文档。
String:整体读写一个值
适合把一个值作为整体保存和读取。选择时先问:业务是每次读取整个对象,还是只修改其中一个字段?
阅读:String 计数器示例 · 字符串命令速查。
Hash:按字段访问对象
适合用字段组织对象。与 String 保存整个对象相比,选型重点是是否需要分别访问字段。
List:维护元素顺序
当重复元素和先后顺序都有意义时,可以从 List 开始理解。学习时重点观察从哪一端插入、从哪一端取出。
Set:表达成员关系
适合回答“有哪些不同成员”“某个成员是否存在”。如果业务还要求固定顺序,需要进一步考虑排序需求。
阅读:Set 命令速查。
Sorted Set:按分数排序
适合既要成员唯一、又要根据分数排序的关系。设计排行榜时,应先明确成员代表谁、分数代表什么、需要升序还是降序。
阅读:Sorted Set 命令速查。
继续学习哪些类型
在常用类型之后,可以按需求阅读官方的 Stream、Bitmap 和 HyperLogLog 教程。使用其他类型前,核对目标 Redis 版本和部署提供的能力。
下一步
- 想练习类型操作:阅读数据结构与操作示例。
- 想理解数据何时过期:阅读TTL 与覆盖行为。
- 想理解多条操作的保证:阅读Pipeline、事务与 Lua。
继续阅读
- 数据与原子性
- 数据与原子性
- 完整实践