Redis : set集合

set集合

集合就是把一些有关联的数据放到一起

集合内的元素不能重复

集合内的元素没有顺序

普通命令

sadd

将一个或者多个元素添加到集合中

注:这些元素是无序并且不重复的

如果是重复的元素则会返回空

smembers

获得set中的所有元素

sismember

判断一个元素是否在集合中

如果存在,则会返回1,否则返回0

srandmember

随机获取一个或者多个元素

scard

获得集合中元素的个数

spop

随机删除集合中的一个元素,count表示删除的个数

可以判断出两次删除的元素是不一样的,判断其是无序删除

smove

将元素从一个集合中取出放入另一个集合

srem

将指定的元素从集合中删除

可以一次性删除多个指定的元素

集合间的操作

进行这三种操作:交集,并集,差集

sinter

获得两个集合的交集

sinterstore

获得集合之间的交集,并保存到集合中

将交集保存到m3中

sunion

获得给定集合的并集

sunionstore

获得给定集合的并集,并且保存到集合中

sdiff

获得给定集合的差集

m1和m2的差集:在m1中存在,在m2中不存在

m2和m1的差集:在m2中存在,在m1中不存在

所以得到的结果是不一样的

sdiffstore

获得集合间的差集,并且保存到集合中

内部编码

intset整数集合

为了节省空间,特定优化的结构,当元素是整数的时候,并且元素的数量还不是特别多,使用的是intset

hashtable哈希表

使用场景

1.使用set保存用户的标签

比如说:用户画像,根据用户的性格特征和喜好特点分析其喜好,然后投其所好

2.使用set确定用户的共同好友

QQ会推送一个共同的好友,让你来甄选添加

3使用set去统计UV

一个互联网产品,如何衡量用户量,其主要的指标就是PV和UV

PV:用户每次访问该服务器,每次访问都会产生一个PV

UV:每个用户访问该服务器都会产生一个UV,但是同一个用户多次进行访问,不会使UV增加,UV需要按照用户去进行去重,这样的去重过程,就是UV来进行实现的。

希望能对大家有所帮助!!!

相关推荐
老华带你飞41 分钟前
口腔助手|口腔挂号预约小程序|基于微信小程序的口腔门诊预约系统的设计与实现(源码+数据库+文档)
java·数据库·微信小程序·小程序·论文·毕设·口腔小程序
hqxstudying1 小时前
J2EE模式---服务层模式
java·数据库·后端·spring·oracle·java-ee
Yu_Lijing1 小时前
MySQL进阶学习与初阶复习第四天
数据库·学习·mysql
大熊程序猿1 小时前
net8.0一键创建支持(Orm-Sqlite-MySql-SqlServer)
数据库·mysql·sqlite
-SGlow-10 小时前
MySQL相关概念和易错知识点(2)(表结构的操作、数据类型、约束)
linux·运维·服务器·数据库·mysql
明月56611 小时前
Oracle 误删数据恢复
数据库·oracle
♡喜欢做梦12 小时前
【MySQL】深入浅出事务:保证数据一致性的核心武器
数据库·mysql
遇见你的雩风12 小时前
MySQL的认识与基本操作
数据库·mysql
半新半旧12 小时前
python 整合使用 Redis
redis·python·bootstrap
dblens 数据库管理和开发工具12 小时前
MySQL新增字段DDL:锁表全解析、避坑指南与实战案例
数据库·mysql·dblens·dblens mysql·数据库连接管理