系列导读:本篇将深入讲解 Redis 集合(Set)的所有操作命令及实际应用场景。
文章目录
一、集合命令总览
| 命令 | 说明 |
|---|---|
| SADD | 添加元素 |
| SREM | 删除元素 |
| SMEMBERS | 获取所有元素 |
| SISMEMBER | 检查元素存在 |
| SCARD | 获取元素数量 |
| SINTER | 交集 |
| SUNION | 并集 |
| SDIFF | 差集 |
二、基础操作命令
2.1 添加与删除
bash
# 添加元素
SADD myset "a" "b" "c"
# 删除元素
SREM myset "a"
# 获取所有元素
SMEMBERS myset
2.2 检查与统计
bash
# 检查元素是否存在
SISMEMBER myset "a" # 1存在 0不存在
# 获取元素数量
SCARD myset
2.3 随机操作
bash
# 随机获取元素
SRANDMEMBER myset
SRANDMEMBER myset 3 # 随机获取3个
# 随机弹出元素
SPOP myset
2.4 移动元素
bash
# 将元素从一个集合移动到另一个
SMOVE source dest "element"
三、集合运算命令
3.1 交集
bash
# 获取交集
SINTER set1 set2
# 存储交集结果
SINTERSTORE result set1 set2
3.2 并集
bash
# 获取并集
SUNION set1 set2
# 存储并集结果
SUNIONSTORE result set1 set2
3.3 差集
bash
# 获取差集(set1有但set2没有)
SDIFF set1 set2
# 存储差集结果
SDIFFSTORE result set1 set2
四、实战应用场景
4.1 标签系统
bash
# 添加标签
SADD article:100:tags "Redis" "数据库" "缓存"
# 按标签查找文章
SADD tag:Redis:articles "article:100"
SADD tag:数据库:articles "article:100"
# 获取共同标签
SINTER article:100:tags article:101:tags
4.2 社交关系
bash
# 关注/粉丝
SADD user:1001:following "user:1002"
SADD user:1002:followers "user:1001"
# 共同关注
SINTER user:1001:following user:1002:following
# 可能认识的人
SDIFF user:1002:following user:1001:following
4.3 抽奖系统
bash
# 添加参与者
SADD lottery:2024 "user1" "user2" "user3"
# 随机抽取
SPOP lottery:2024
# 抽取多个
SRANDMEMBER lottery:2024 3
总结
本文我们学习了:
✅ 基础操作 :SADD/SREM/SMEMBERS
✅ 集合运算 :SINTER/SUNION/SDIFF
✅ 应用场景:标签系统、社交关系、抽奖
下篇预告 :Redis 从入门到精通(八):有序集合操作详解
作者 :刘~浪地球
系列 :Redis 从入门到精通(七)
更新时间:2026-04-05