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

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

相关推荐
努力成为AK大王12 小时前
并发编程的核心挑战、优化方案与核心知识点总结
java·开发语言·数据库
En^_^Joy13 小时前
Django开发:模板系统入门指南
数据库·django·sqlite
无关868814 小时前
Redis Bitmaps 用户签到系统设计方案
数据库·redis·缓存
江华森14 小时前
FastAPI 极速开发指南 — 从零到生产级 API 实战
数据库·fastapi
小小工匠14 小时前
Redis - 如何使用 Redis 实现分布式锁
redis·性能优化·集群·并发
老纪15 小时前
Redis分布式锁进第九零篇
数据库·redis·分布式
haven-85215 小时前
MySQL事务ACID、隔离级别、MVCC、幻读解决
数据库·mysql
小高学习java15 小时前
事务的边界问题,如何判断数据回滚时机。
java·数据库·后端
迷枫71216 小时前
【无标题】
数据库
TDengine (老段)17 小时前
TDengine 扫描算子 — TableScan、TagScan 与下推优化
大数据·数据库·物联网·时序数据库·tdengine·涛思数据