Redis 从入门到精通(七):集合操作详解

系列导读:本篇将深入讲解 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

相关推荐
二宝哥1 小时前
02.springboot项目对接国内模型实现对话聊天
数据库·人工智能·spring boot
秦时明月之君临天下1 小时前
MySQL purge 参数详解:innodb_purge_threads 与 innodb_purge_batch_size
数据库·mysql·1024程序员节
三垣网安1 小时前
某某大学心理健康教育平台弱口令及SQL注入漏洞
数据库·sql
打工仔折腾 AI1 小时前
AI Agent 工程化实战(二):5 分钟跑通 Deep Agent 并逐层拆解底层链路
java·数据库·人工智能·后端·python·langchain·ai agent 实战
Shaoshing2 小时前
MySQL视图
数据库
爱好曙光2 小时前
Redis Cluster 槽迁移:MOVED 重定向与拓扑刷新实战
redis·cluster·性能调优·moved·槽迁移
这个DBA有点耶2 小时前
测试全绿,上线三周数据没入账——那个95%的兼容度报告,漏掉的是边界
数据库·mysql·架构
1024奇点3 小时前
【仓颉语言入门 · 第二篇 第 15 课】
开发语言·数据库·ide·开源
疯狂学习GIS3 小时前
将谷歌地球引擎账号升级为Contributor与Partner层级的方法
java·数据库·人工智能
gf13211113 小时前
python_高德地图驾车时长查询
数据库·python·mysql