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

相关推荐
forEverPlume1 分钟前
mysql如何实现高可用集群架构_基于MHA环境搭建与部署
jvm·数据库·python
草莓熊Lotso1 小时前
Vibe Coding 时代:LangChain 与 LangGraph 全链路解析
linux·运维·服务器·数据库·人工智能·mysql·langchain
zh1570236 小时前
JavaScript中WorkerThreads解决服务端计算瓶颈
jvm·数据库·python
代码AI弗森6 小时前
一文理清楚“算力申请 / 成本测算 / 并发评估”
java·服务器·数据库
Java开发的小李6 小时前
SpringBoot + Redis 实现分布式 Session 共享(解决多实例登录状态丢失问题)
spring boot·redis·分布式
摇滚侠7 小时前
expdp 查看帮助
java·数据库·oracle
流年似水~7 小时前
MCP协议实战:从零搭建一个让Claude能“看见“数据库的工具服务
数据库·人工智能·程序人生·ai·ai编程
2401_871492858 小时前
Vue.js监听器watch利用回调函数处理级联下拉框数据联动
jvm·数据库·python
志栋智能8 小时前
超自动化安全:构建智能安全运营的核心引擎
大数据·运维·服务器·数据库·安全·自动化·产品运营
daixin88489 小时前
cursor无法正常使用gpt5.5等模型解决方案
java·redis·cursor