redis支持的数据类型-set

set

集合的特点是元素是无序、不重复,支持集合间的操作(即两个集合取交集、并集、差集);

命令:
注意集合的命令是以 s- 为前缀;
交集、并集和差集分别对应方法: sinter, sunion, sdiff。

sadd key element向集合Key添加element,若存在则失败
srem key element将集合key中的element移除掉
scard key计算集合大小,也就是element的数量
sismenber key element判断element是否在集合中
srandmember key count在集合中随机挑count个元素,该方法对比spop不会破坏集合。
spop key从集合中随机弹出一个元素
smembers key获取集合所有元素。返回结果无序,如果member多,注意阻塞
sinter/sunion/sdiff + store destkey将差集、交集和并集结果保存在destkey中
sinter/sunion/sdiff key1 key2

实战场景:
微博转发抽奖平台,can be spop

点赞 踩

标签tag 给用户添加标签: sadd user:1:tags tag1 tag2 给标签添加用户:略 可以将这两个操作放在同一个事务内。

共同关注

TIPS

sadd = Tagging
spop/srandmember = random item
sadd + sinter = social graph 社交相关应用

应用场景:

Redis set对外提供的功能与list类似是一个列表的功能,特殊之处在于set是可以自动排重的,当你需要存储一个列表数据,又不希望出现重复数据时,set是一个很好的选择,并且set提供了判断某个成员是否在一个set集合内的重要接口,这个也是list所不能提供的。

Sets 集合的概念就是一堆不重复值的组合。利用Redis提供的Sets数据结构,可以存储一些集合性的数据,比如在微博应用中,可以将一个用户所有的关注人存在一个集合中,将其所有粉丝存在一个集合。Redis还为集合提供了求交集、并集、差集等操作,可以非常方便的实现如共同关注、共同喜好、二度好友等功能,对上面的所有集合操作,你还可以使用不同的命令选择将结果返回给客户端还是存集到一个新的集合中。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值