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

相关推荐
lusklusklusk2 小时前
Oracle数据库基础之10_性能优化
数据库·oracle·性能优化
Omics Pro2 小时前
预测性虚拟细胞中显式机理算子
大数据·数据库·人工智能·python·算法·机器学习·自然语言处理
看浪的路人2 小时前
第5讲:Prompt 管理与版本追踪
大数据·数据库·elasticsearch
Eloudy2 小时前
全文 - version.A - AMBA CHI Chip-to-Chip(C2C)
java·开发语言·数据库·gpu·chiplet
笨小孩@GF 知行合一11 小时前
易语言-高级应用
数据库·编程·易语言·中文编程
KaiwuDB12 小时前
KaiwuDB 运维实战04:DRBD + KaiwuDB——物联网场景下的低成本数据库高可用方案
运维·数据库·物联网·时序数据库·kaiwudb·aiot·多模数据库
hweiyu0012 小时前
Redis命令:HMGET
redis·缓存
夜雪一千13 小时前
MySQL外键彻底入门:是什么、怎么用、什么时候不该用
数据库·mysql
qq_3344668613 小时前
删除SSMS的历史登录记录
数据库·sql