初识redis:Set类型

Set有很多种含义,比如集合,比如设置(和get相对应)。

在这里我们说的set是指的redis中的集合,并且这里的集合是无序的,和之前的list是对应的。

  • List  : [1,2,3] 和 [2,1,3] 是两个不同的list
  • Set  : [1,2,3] 和 [2,1,3] 是两个相同的集合

目录

基本操作

SADD    SMEMBERS    SISMEMBER

SPOP   

SMOVE

SREM

交集、并集、差集

SINTER

SINTERSTORE

SUNION

SUNIONSTORE

SDIFF

SDIFFSTORE

Set的应用场景


基本操作

SADD    SMEMBERS    SISMEMBER

SADD:添加元素到集合中

SMEMBERS:查询集合的元素

SISMEMBER:查询某个元素是否在集合中。

SADD key member [member ...]
SMEMBERS key
SISMEMBER key

把集合中的元素叫做member,并且当出现重复的元素的时候,只算同一个元素。

SPOP   

SPOP key [count]

不写count的时候,就是随机删除一个,写的时候就是写几个删除几个。并且删除的时候是随机删除元素,跟插入的顺序没有关系。

SMOVE

SMOVE source destination member

把member从source上删除,再插入到destination中。

如果要移动的数字在destination中已经有了,那么仍然会按照删除再插入的操作进行,但是插入会不会有效果。

如果要移动的数字在source中没有,会操作失败。

SREM

可以一次删除一个member,也可以一次删除多个member

SREM key member [member...]

交集、并集、差集

SINTER

求交集

SINTER key [key ...]

此处的每个key都对应一个集合,返回值就是最终交集的数据。

SINTERSTORE

直接把算好的交集,放到destination这个key对应的集合中了。

SINTERSTORE destination key [key ...]

SUNION

求并集

SUNION key [key ...]

SUNIONSTORE

和上面的一样,把并集储存到destination中。

SDIFF

求差集

SDIFF key [key ...]

返回值是差集的个数。

SDIFFSTORE

和上面的一样,把差集存储到destination中。

总结:

命令时间复杂度
SADD key element[element...]O(k), k是元素个数
SREM key element[element...]O(k), k是元素个数
SCARD keyO(1)
SISMEMBER key elementO(1)
SRANDMEMBER key[count]O(n), n是count
SPOP key[count]O(n), n是count
SMEMBERS keyO(k), k是元素个数
SINTER key[key...] SINTERSTOREO(m*k), k是几个集合中元素最小的个数, m是
SUNION key[key...] SUNIONSTOREO(k), k是多个集合的元素个数总和
SDIFF key[key...] SDIFFSTOREO(k), k是多个集合的元素个数总和

Set的应用场景

  • 使用Set来保存用户的“标签”
  • 使用Set来计算用户之间的共同好友
  • 使用Set统计UV(去重)
  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值