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

相关推荐
weelinking8 小时前
【产品】00_产品经理用Claude实现产品系列介绍
数据库·人工智能·sql·数据挖掘·github·产品经理
2301_803934619 小时前
Go语言如何做网络爬虫_Go语言爬虫开发教程【指南】
jvm·数据库·python
秋910 小时前
windows中安装redis
数据库·redis·缓存
Cosolar10 小时前
万字详解:RAG 向量索引算法与向量数据库架构及实战
数据库·人工智能·算法·数据库架构·milvus
想唱rap10 小时前
IO多路转接之poll
服务器·开发语言·数据库·c++
SeaTunnel10 小时前
AI 让 SeaTunnel 读源码和调试过时了吗?
大数据·数据库·人工智能·apache·seatunnel·数据同步
凯瑟琳.奥古斯特11 小时前
数据冗余与规范化的本质[数据库原理]
开发语言·数据库·职场和发展
_ku_ku_11 小时前
数据库系统原理 · SQL 数据定义、更新及数据库编程 · 自学总结
数据库·oracle
Mortalbreeze11 小时前
深度理解文件系统 ---- 从磁盘存储到内核存储
大数据·linux·数据库
2301_8039346111 小时前
MySQL 字段类型选择规范指南
jvm·数据库·python