Redis基础数据类型之 Set (基础篇)

目录

1、set 操作命令 

1-1、sadd、smembers 命令

1-2、srem 命令

1-3、scard、sismember 命令

1-4、srandmember、spop 命令

2、Set 集合间操作命令

2-1、sinter 命令

2-2、suinon 命令

2-3、sdiff 命令

2-4、将交集、并集、差集的结果保存

3、使用场景


 集合( set)类型也是用来保存多个的字符串元素,但和列表类型不一样的是,集合中不允许有重复元素,并且集合中的元素是无序的,不能通过索引下标获取元素。

一个集合最多可以存储2的32次方 -1个元素。Redis除了支持集合内的增删改查,同时还支持多个集合取交集、并集、差集,合理地使用好集合类型,能在实际开发中解决很多问题。

1、set 操作命令 

1-1、sadd、smembers 命令

# 允许添加多个,返回结果为添加成功的元素个数
sadd key member [member ...]

# 返回结果是无序的
smembers key

1-2、srem 命令

# 允许删除多个,返回结果为成功删除元素个数
srem key member [member ...]

1-3、scard、sismember 命令

# 计算元素个数
scard key

# 如果给定元素在集合内返回1,反之返回0
sismember key member

1-4、srandmember、spop 命令

# 随机从集合返回指定个数元素,指定个数如果不写默认为1
srandmember key [count]

# 同样可以指定个数,如果不写默认为1,注意,既然是弹出,spop命令执行后,元素会从集合中删除,而srandmember不会。
spop key [count]

2、Set 集合间操作命令

现在有两个集合,它们分别是set1和set2

2-1、sinter 命令

# 求多个集合的交集
sinter key [key ...] 

2-2、suinon 命令

# 求多个集合的并集
sunion key [key ...]

2-3、sdiff 命令

# 求多个集合的差集,以第一个key的差集返回
sdiff key [key ...]

2-4、将交集、并集、差集的结果保存

 集合间的运算在元素较多的情况下会比较耗时,所以 Redis提供了三个命令(原命令+store)

 将集合间交集、并集、差集的结果保存在 destination key 中

# 交集
sinterstore destination key [key ...]

# 并集
sunionstore destination key [key ...]

# 差集
sdiffstore destination key [key ...]

3、使用场景

集合类型比较典型的使用场景是标签(tag)

  • 例如一个用户可能对娱乐、体育比较感兴趣,另一个用户可能对历史、新闻比较感兴趣,这些兴趣点就是标签。有了这些数据就可以得到喜欢同一个标签的人,以及用户的共同喜好的标签,这些数据对于用户体验以及增强用户黏度比较重要。
  • 例如一个电子商务的网站会对不同标签的用户做不同类型的推荐,比如对数码产品比较感兴趣的人,在各个页面或者通过邮件的形式给他们推荐最新的数码产品,通常会为网站带来更多的利益。
  • 除此之外,集合还可以通过生成随机数进行比如抽奖活动,以及社交图谱等等。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值