欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

redis应用场景补充(二)

程序员文章站 2022-07-13 11:12:03
...

1. 前言

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

 

2. 应用场景之用户标签

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

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

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

  • 给用户添加标签

redis应用场景补充(二)
            
    
    博客分类: Redis redis应用场景 

 

  • 给标签添加用户

redis应用场景补充(二)
            
    
    博客分类: Redis redis应用场景 

 

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

 

  • 删除用户下的标签

redis应用场景补充(二)
            
    
    博客分类: Redis redis应用场景 

 

  • 删除标签下的用户

redis应用场景补充(二)
            
    
    博客分类: Redis redis应用场景 

 

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

redis应用场景补充(二)
            
    
    博客分类: Redis redis应用场景 

 

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

redis应用场景补充(二)
            
    
    博客分类: Redis redis应用场景 

 

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

命令组合 应用场景
sadd Tagging(标签)
spop/srandmember Random item(生成随机数,比如抽奖)
sadd + sinter Social Graph(社交需求)
相关标签: redis应用场景