当前位置: 首页 > news >正文

Redis 集合类型(Set)和命令 (数据类型 四)

集合类型是一个无序、不重复的数据集合,它可以用于存储唯一的值,并提供了对集合进行交集、并集、差集等操作。

常用集合类型命令:

添加操作:
sadd key member1 member2 …:向集合中添加一个或多个成员。

# 添加三个用户到users集合中
sadd users alice bob lindow

删除操作:
srem key member1 member2 …:从集合中删除一个或多个成员。

srem users bob

spop key [count]:随机移除并返回集合中的一个或多个成员。

spop users

smove source destination member:将指定成员从一个集合移动到另一个集合。

# 将爱丽丝从用户集合移动管理员集合
smove users admins alice

成员判断操作:
sismember key member:判断成员是否存在于集合中。

sismember users alice

scard key:获取集合的元素数量。

scard users

smembers key:返回集合中的所有成员。

smembers users

集合操作:
sunion key1 key2 …:返回多个集合的并集,即合并多个集合中的所有成员。

# 返回用户集合和管理员集合并集
sunion users admins

sinter key1 key2 …:返回多个集合的交集,即获取多个集合中共同存在的成员。

# 用户集合和活跃用户集合交集
sinter users active_users

sdiff key1 key2 …:返回多个集合的差集,即获取第一个集合中存在但其他集合中不存在的成员。

# 用户集合和黑名单集合差集
sdiff users blacklist

sunionstore destination key1 key2 …:计算多个集合的并集,并将结果存储到指定的目标集合中。

sunionstore new_users users active_users

sinterstore destination key1 key2 …:计算多个集合的交集,并将结果存储到指定的目标集合中。

sinterstore common_users users active_users

sdiffstore destination key1 key2 …:计算多个集合的差集,并将结果存储到指定的目标集合中。

sdiffstore valid_users users blacklist

基本类型数据使用场景

1.标签:

将每个标签作为集合中的一个元素,而每个元素可以关联到对应的文章、商品或用户等对象。通过集合提供的交集、并集、差集等操作,可以方便地进行标签的聚合、搜索和过滤。

2、用户关注和粉丝:

使用两个集合来表示用户关注的人和关注该用户的人。通过集合操作,可以快速获取用户关注的人、共同关注的人、粉丝列表等信息。

3.兴趣爱好推荐:

集合可以用于实现用户兴趣爱好推荐系统。通过将用户的兴趣爱好作为集合的元素,可以通过集合操作找到共同兴趣的用户,从而进行兴趣推荐。

4.投票:

每个用户可以通过将自己的 ID 添加到集合中来进行投票,而集合的大小可以表示投票的数量。通过集合操作,可以实现投票的计数、查找投票者等功能。

5.事件订阅与发布:

集合可以作为事件订阅与发布系统的一部分。订阅者可以将自己的标识添加到集合中,而发布者可以向集合中的订阅者发送事件。通过集合操作,可以方便地管理订阅者列表和事件的分发。

上一篇:列表类型(List)和命令
下一篇:有序集合类型(zSet)

http://www.lryc.cn/news/178880.html

相关文章:

  • thinkphp5 如何模拟在apifox里面 post数据接收
  • 建造者模式 创建型模式之三
  • 发布以太坊测试网络中的第一笔交易
  • No module named ipykernel解决方案
  • Java 基于 SpringBoot 的校园疫情防控系统
  • windows的ui自动化测试相关
  • Mybatis 二级缓存(使用Ehcache作为二级缓存)
  • C语言 Cortex-A7核 IIC实验
  • 【每日一题】2769. 找出最大的可达成数字
  • 开源电子合同签署平台小程序源码 在线签署电子合同小程序源码 合同在线签署源码
  • 36 二叉树中序遍历
  • 广州华锐互动:VR结绳逃生训练模拟真实火灾场景,增强训练沉浸感
  • Flink安装及简单使用
  • QT信号槽
  • Spring Boot 技术架构图(InsCode AI 创作助手辅助)
  • python使用mitmproxy和mitmdump抓包在手机上抓包(三)
  • react create-react-app v5 从零搭建(使用 npm run eject)
  • 在微信小程序中跳转到另一个小程序(多种实现方式)
  • beanstalkd 启动跟停止【经常使用 nohup 和 配合来启动程序,如: nohup ./test 同时免疫SIGINT和SIGHUP信号】
  • 企业年报API的应用:从金融投资到市场研究
  • 基于Matlab实现评价型模型求解方法(附上源码+数据)
  • Prettier - Code formatter格式化规则文件
  • 用C++实现文件读写操作
  • 【我的创作纪念日】使用pix2pixgan实现barts2020数据集的处理(完整版本)
  • 背包算法(Knapsack problem)
  • “童”趣迎国庆 安全“童”行-柿铺梁坡社区开展迎国庆活动
  • 常用压缩解压缩命令
  • 第四十一章 持久对象和SQL - Storage
  • 【Java接口性能优化】skywalking使用
  • 大学各个专业介绍