Redis——集合类型相关命令

集合中的元素是无序的,集合中的元素是不能重复的,我们把集合中的元素叫做memeber。

在集合添加元素

复制代码
SADD key member1 member2 ...

向 Set 集合中添加一个或多个元素
集合不存在则自动创建
重复元素会自动去重,只保留一份
返回值:成功添加的新元素个数

查看集合所有元素

复制代码
SMEMBERS key

返回集合中所有的元素
集合无序,输出顺序不固定
key 不存在返回空集合

集合中的元素个数

sql 复制代码
scard key1

判断集合中的某元素是否存在

复制代码
SISMEMBER key member

存在返回1,不存在返回0

随机删除集合中的一个元素

复制代码
SPOP key [count] //随机删除集合中的某个或者某几个元素,count表示删除数量,不写就是删除一个。返回被删除的元素

删除指定的元素

sql 复制代码
srem key value1 value2... ...//删除集合中指定的某几个元素

随机从集合获取一个元素

sql 复制代码
SRANDMEMBER key [count] //随机筛选出count个元素(不写的话就是随机筛选一个),返回被选中的元素

把集合元素移动到另一个集合

sql 复制代码
SMOVE key1 key2 value //把集合1中的value移动到集合2,其中集合1的value会被删除

如果集合2已经有value,那么不会重复添加,但是集合1中的value会被删除

如果集合1没有value就报错

交集、并集、差集

sql 复制代码
sinter key1 key2... ... //求若干个集合的交集

sinterstore deskey key1 key2 ... ...//求出若干集合的交集后把交集插入到deskey所指向的集合

sunion key1 key2... ... //求若干个集合的并集

sunionstore deskey key1 key2 ... ...//求出若干集合的并集后把并集插入到deskey所指向的集合

sdiff key1 key2... ... //求若干个集合的差集

sdiffstore deskey key1 key2 ... ...//求出若干集合的差集后把差集插入到deskey所指向的集合

集合应用场景

  • **用户标签,比如使用推荐算法给用户制造信息茧房就需要收集每个用户的一些特征,也就是标签。**用户标签和视频标签求交集就能给用户推荐视频。
  • 使用set统计UV(user view)。利用set给用户去重,这样set中的用户就是实际用户数
相关推荐
tian_jiangnan3 小时前
Flink 流计算进阶:手写一套通用的 Redis/MySQL /Kafka数据源封装工具类
redis·mysql·flink
马优晨7 小时前
Spring Boot + MyBatis + Redis 整合实战 —— 项目源码深度解析
spring boot·redis·mybatis·mybatis + redis·redis实战·spring实战·mybatis实战
ShiXZ21311 小时前
Redis 常用指令全集:redis-cli 实战速查手册
数据库·redis·缓存
为你学会写情书1 天前
Redis 从入门到实战:一篇搞定核心数据结构与 NestJS 集成
redis
喜欢的名字被抢了1 天前
长会话状态治理:当Redis失忆后,系统如何自己找回忆
数据库·redis·缓存
海兰1 天前
【数据库】tdsql(mysql8.0)优化思考三
数据库·redis
千河殇 多想和她2 天前
线上 Redis 突然“爆”了,怎么办?
数据库·redis·bootstrap
Bug收容所2 天前
12305项目学习day5
java·spring boot·redis·mysql·spring·rocketmq
智码看视界2 天前
Day33-数据层 × 中间件AI化篇:Redis缓存经典问题-击穿、穿透、雪崩的终极解决方案
数据库·redis·缓存·中间件·穿透·雪崩·击穿
后端观测站3 天前
第九章:Redis 为什么会发生缓存穿透、击穿、雪崩?
redis