(二)Redis 的五大核心数据结构
(二)Redis 的五大核心数据结构
在使用 Redis 之前需要先详细地了解其数据结构,Redis 不仅仅是一个简单的 Key-Value 存储,它支持丰富的数据结构,使其可以适应丰富的业务场景,本文将依次介绍其五种数据结构和对应的应用场景。
String (字符串)
- 特点
最基础的数据结构,可以 key 对应一个 String 字符串,最大支持 512MB
常用命令
SET key value: 设置值GET key: 获取值INCR key:值增涨APPEND key value: 追加值
应用场景
缓存对象数据
实现简单计数器(浏览量、点赞等)
List (列表)
特点
双向链表,支持从两端插入/弹出元素
插入顺序即保存顺序
常用命令
LPUSH key value:左侧插入RPUSH key value:右侧插入LPOP key / RPOP key:弹出LRANGE key start stop:获取区间元素
应用场景
- 消息队列(配合阻塞命令使用,如 BLPOP)
- 评论列表、任务列表等
Set(集合)
- 特点
- 无序且不重复的元素集合
- 底层使用哈希表实现
- 常用命令
SADD key member:添加元素SREM key member:移除元素SISMEMBER key member:是否存在SUNION key1 key2:并集SINTER key1 key2:交集
- 应用场景
- 标签系统、好友关系、抽奖系统(去重)
- 社交系统中的共同好友等交集运算
Sorted Set(有序集合)
- 特点
- 每个元素带一个 score,按 score 排序
- 支持按分值范围、排名获取元素
- 常用命令
ZADD key score member: 向有序集合 key 添加一个成员 member,并为它指定分数 score。ZRANGE key start stop: 返回有序集合中从 start 到 stop 之间的成员,按照分数从小到大排序。ZREVRANGE key start stop: 与 ZRANGE 相反,返回的是按分数从大到小排序的成员。ZREM key member: 从有序集合 key 中移除指定的 member。ZRANK key member:获取排名
- 应用场景
- 排行榜(积分、点赞数等)
- 延迟任务队列(score 表示时间戳)
Hash(哈希)
- 特点
- 键值对集合,适合存储对象(如用户信息)
- 常用命令
HSET key field value: 插入值HGET key field: 获取哈希表 key 中指定字段 field 的值。HGETALL key: 获取哈希表 key 中的所有字段和值。HDEL key field: 从哈希表 key 中删除指定字段 field。
- 应用场景
- 存储对象属性,如用户资料、商品信息
- 适合对字段频繁更新的数据结构