05-set类型
命令
sadd, smembers 和 sismember
sadd 是添加元素,支持批量添加
smembers 是获取到所有的元素
sismember 是查询指定的元素是否存在
spop 和 srandmember
pop 一般来说是末尾删除,但是在 set 中,是没有末尾的概念的,因此 spop 是采用随机删除
srandmember 也是随机返回一个数,但是它和 spop 不一样的地方是,它不会删除 set 中的元素
smove 和 srem
smove 是把一个 key 中的元素移动到另一个 key 中,但是它不支持批量操作
srem 是移除元素,它是可以支持批量操作的
交集,并集和差集
store是表示存储,把输出的结果存储在Redis里面inter是用来表示交集union是表示并集diff表示差集
| 命令 | 含义 |
|---|---|
sinter | 是把交集的结果返回给客户端 |
sinterstore | 是把结果存储在 Redis 里面 |
sunion | 是把交集的结果返回给客户端 |
sunionstore | 是把交集存储在 Redis 里面 |
sdiff | 是把差集的结果返回给客户端, 这个是第一个相对于第二个的差集,因此输入不同顺序的结果是不同的 |
suniondiff | 是把差集存储在 Redis 里面 |
应用场景
用户画像
用户画像是用来描述用户一系列特性,可以比较方便地给用户推销定制的产品。
set 类型是存储各种特性的标签,由于去重的特性,可以比较方便地存储。通过交集,还可以给用户推荐“志同道合”的一些人群,从而可以更佳方便地推销广告
添加共同好友
这个功能和上面的用户画像中“用户推荐“志同道合”的一些人群”类似,只不过在这里 set 里面存储的是用户 id 罢了。只要把它们两个的列表取交集就可以算出共同好友了
统计 UV
UV 是 user view,它是用来统计网站的访问的用户个数,是衡量网站用户活跃度的一个指标
由于一个用户大概率会有多次访问改网站,那么就可以通过 set 来去重,计算出用户个数
PV(Page View)是另一个衡量用户活跃度的的指标,它是用来计算网页的访问次数由于不同用户访问的次数是不一样的,甚至存在刷访问次数的情况,因此这个统计是不太准确的