Skip to content

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) 是另一个衡量用户活跃度的的指标,它是用来计算网页的访问次数

由于不同用户访问的次数是不一样的,甚至存在刷访问次数的情况,因此这个统计是不太准确的