前言
@H_502_2@简单介绍一下集合的基本结构和命令。正文
@H_502_2@集合(set)类型也是用来保存多个的字符串元素,但和列表类型不一 样的是,集合中不允许有重复元素,并且集合中的元素是无序的,不能通过 索引下标获取元素。 @H_502_2@一个集合最多可以存储232-1个元 素。Redis除了支持集合内的增删改查,同时还支持多个集合取交集、并 集、差集,合理地使用好集合类型,能在实际开发中解决很多实际问题。 @H_502_2@sinterstore destination key [key ...]
suionstore destination key [key ...]
sdiffstore destination key [key ...]
@H_502_2@集合常用命令时间复杂度:
@H_502_2@使用场景
@H_502_2@集合类型比较典型的使用场景是标签(tag)。 @H_502_2@例如一个用户可能对娱 乐、体育比较感兴趣,另一个用户可能对历史、新闻比较感兴趣,这些兴趣 点就是标签。 @H_502_2@有了这些数据就可以得到喜欢同一个标签的人,以及用户的共 同喜好的标签,这些数据对于用户体验以及增强用户黏度比较重要。 @H_502_2@例如一 个电子商务的网站会对不同标签的用户做不同类型的推荐,比如对数码产品 比较感兴趣的人,在各个页面或者通过邮件的形式给他们推荐最新的数码产 品,通常会为网站带来更多的利益。 @H_502_2@示例: @H_502_2@给用户添加标签sadd user:1:tags tag1 tag2 tag5
sadd user:2:tags tag2 tag3 tag5 ...
sadd user:k:tags tag1 tag2 tag4 ...
@H_502_2@或者给标签添加用户:
sadd tag1:users user:1 user:3
sadd tag2:users user:1 user:2 user:3 ...
sadd tagk:users user:1 user:2 ...
@H_502_2@删除用户标签:
srem user:1:tags tag1 tag5
@H_502_2@删除标签下的用户:
srem tag1:users user:1
srem tag5:users user:1
@H_502_2@计算用户共同感兴趣的标签:
sinter user:1:tags user:2:tags
@H_502_2@其他的一些需求:
sadd=Tagging(标签)
·spop/srandmember=Random item(生成随机数,比如抽奖)
·sadd+sinter=Social Graph(社交需求)
结
@H_502_2@下一节有序集合。版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。