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来进行实现的。

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

相关推荐
高山有多高16 小时前
详解文件操作
c语言·开发语言·数据库·c++·算法
盒马coding16 小时前
PostgreSQL与Greenplum常见连接客户端
数据库·postgresql
言之。16 小时前
Django get_or_create 方法详解
数据库·django·sqlite
Volunteer Technology16 小时前
三高项目-缓存设计
java·spring·缓存·高并发·高可用·高数据量
罗光记17 小时前
腾讯混元游戏视觉生成平台正式发布2.0版本
数据库·经验分享·百度·facebook·开闭原则
我科绝伦(Huanhuan Zhou)17 小时前
达梦数据守护集群监视器详解与应用指南
数据库
CoderYanger18 小时前
MySQL数据库——3.2.1 表的增删查改-查询部分(全列+指定列+去重)
java·开发语言·数据库·mysql·面试·职场和发展
PEI0419 小时前
MVCC(多版本并发控制)
java·开发语言·数据库
码出财富19 小时前
事务管理的选择:为何 @Transactional 并非万能,TransactionTemplate 更值得信赖
数据库
ST.J19 小时前
SQL与数据库笔记
数据库·笔记·sql