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 小时前
软件工程:数据结构设计
数据库·软件工程·设计原则·设计方法·梁辰兴·数据库结构设计·数据库结构类型
RisunJan1 小时前
Linux命令-scriptreplay(终端会话回放)
linux·运维·chrome
AC赳赳老秦1 小时前
风控岗应用:OpenClaw 采集公开司法与经营异常数据,自动生成企业风险评估报告
大数据·c语言·数据库·人工智能·python·php·openclaw
灯澜忆梦2 小时前
【MySQL18】进阶篇 | MySQL管理
数据库·mysql
zcmodeltech2 小时前
智能制造教学实训沙盘模型多系统协同控制系统设计:基于STM32与Modbus RTU的工业机器人-智慧工厂-数字孪生全场景联动方案
数据库·stm32·嵌入式硬件·机器人·制造·多分类
AI多Agent协作实战派3 小时前
AI多Agent协作系统实战(四十):AI说“没有错误“,系统判了“测试失败“——一个正则的误判
数据库·人工智能
隔窗听雨眠3 小时前
OceanBase接入DeepSeek:数据库与AI的深度融合如何改写企业数据规则
数据库·人工智能·oceanbase
playboy1344 小时前
工作室 NAS 存储故障-办公室所有数据无法访问怎么办
数据库
byxdaz5 小时前
jeston平台交叉编译Poppler库与预览pdf文件
数据库
SilicoCode5 小时前
江科大STM32入门:FLASH闪存详解——从结构原理到读写保护
数据库·mongodb