`

redis应用场景补充(二)

阅读更多

1. 前言

       在浅谈redis数据结构之集合这篇文章中,介绍了一些关于集合类型的知识,本篇就根据集合类型,开展实际应用场景的研究。

 

2. 应用场景之用户标签

       在实际的生活中,我们都在电商网站上买过东西,不知道细心的小伙伴有没有发现,绝大多数的电商app,如果你喜欢数码科技,它就会给你推荐一些最新的数码产品。这就根据不同标签的用户做不同类型的推荐。在电商领域,这种方式称之为电商人群分类。

       还有这样一个实际的例子,一个用户可能对娱乐、体育比较感兴趣,另一个用户可能对历史、新闻比较感兴趣,这些兴趣点就是标签。有了这些数据就可以得到喜欢同一个标签的人,以及用户的共同喜好的标签,这些数据对于用户体验以及增强用户黏度比较重要。在娱乐新闻领域,这种方式称之为娱乐新闻推荐。

       集合类型比较典型的使用场景就是标签(tag)。下面使用集合类型实现标签功能。

  • 给用户添加标签

 

  • 给标签添加用户

 

       这里需要注意的是,必须要保证用户和标签的关系维护应该在一个事务内执行。否则,部分命令失败造成的数据不一致。有关如何将两个命令放在一个事务中,有兴趣的小伙伴可以研究下Lua的使用。

 

  • 删除用户下的标签

 

  • 删除标签下的用户

 

  • 计算用户共同感兴趣的标签

 

  • 统计两个标签共同拥有的用户

 

       上面只是给出了使用Redis集合类型实现标签的基本思路,实际上一个标签系统远比这个要复杂得多,不过集合类型的应用场景通常为以下几种,如下表所示:

命令组合 应用场景
sadd Tagging(标签)
spop/srandmember Random item(生成随机数,比如抽奖)
sadd + sinter Social Graph(社交需求)
1
0
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics