redis应用场景补充(二)
程序员文章站
2022-07-13 11:12:39
...
1. 前言
在浅谈redis数据结构之集合这篇文章中,介绍了一些关于集合类型的知识,本篇就根据集合类型,开展实际应用场景的研究。
2. 应用场景之用户标签
在实际的生活中,我们都在电商网站上买过东西,不知道细心的小伙伴有没有发现,绝大多数的电商app,如果你喜欢数码科技,它就会给你推荐一些最新的数码产品。这就根据不同标签的用户做不同类型的推荐。在电商领域,这种方式称之为电商人群分类。
还有这样一个实际的例子,一个用户可能对娱乐、体育比较感兴趣,另一个用户可能对历史、新闻比较感兴趣,这些兴趣点就是标签。有了这些数据就可以得到喜欢同一个标签的人,以及用户的共同喜好的标签,这些数据对于用户体验以及增强用户黏度比较重要。在娱乐新闻领域,这种方式称之为娱乐新闻推荐。
集合类型比较典型的使用场景就是标签(tag)。下面使用集合类型实现标签功能。
- 给用户添加标签
- 给标签添加用户
这里需要注意的是,必须要保证用户和标签的关系维护应该在一个事务内执行。否则,部分命令失败造成的数据不一致。有关如何将两个命令放在一个事务中,有兴趣的小伙伴可以研究下Lua的使用。
- 删除用户下的标签
- 删除标签下的用户
- 计算用户共同感兴趣的标签
- 统计两个标签共同拥有的用户
上面只是给出了使用Redis集合类型实现标签的基本思路,实际上一个标签系统远比这个要复杂得多,不过集合类型的应用场景通常为以下几种,如下表所示:
命令组合 | 应用场景 |
sadd | Tagging(标签) |
spop/srandmember | Random item(生成随机数,比如抽奖) |
sadd + sinter | Social Graph(社交需求) |
上一篇: 浅谈redis数据结构之集合