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中的用户就是实际用户数
相关推荐
imDwAaY17 小时前
操作系统如何管理程序运行?从线程、进程到内存隔离与用户态切换:CS162 Note2
android·java·redis
码途行者18 小时前
处理超时未支付订单:两套轻量化方案,附 PHP 极简实现
开发语言·redis·php
草莓熊Lotso1 天前
【C++ 基于微服务的即时通讯系统】etcd + brpc 从安装到服务注册发现全链路实战
网络·数据库·c++·redis·微服务·etcd
我不会起名字3221 天前
Redis 突然只能读不能写:MISCONF 报错的 3 类触发条件与 4 步恢复
运维·redis·持久化·排查·misconf
我不会起名字3221 天前
Redis 从 0 到 1(九):主库宕机 30 秒自动切主——1 主 2 从 3 哨兵 + Go 客户端
redis·docker·sentinel·高可用·哨兵
毕业设计7032 天前
(免费领源码)SSM董家湾线上点餐系统04682- java、PHP、python、C#、小程序、大数据、单片机、网络工程等)
java·redis·mysql·tomcat·maven·mybatis·ssm
用户094248568032 天前
第1章:Redis 术语全景与单线程工作原理
redis·快应用·源码阅读
hflmwl82 天前
RedisDesktopManager安装包中文版官方下载,redis可视化客户端工具下载
数据库·redis·缓存·可视化客户端工具
用户84913717547162 天前
订单超时未支付自动取消实现方案 | 三种方案详解
redis·面试·rabbitmq
easyboot2 天前
Memurai Windows下的redis
redis