简介:案例实战需求之大数据下的用户画像标签去重
- 介绍
- 用户画像 英文为User Profile,是根据用户基本属性、社会属性、行为属性、心理属性等真实信息而抽象出的一个标签化的、虚拟的用户模型。“用户画像”的实质是对 “人”的数字化。
- 应用场景有很多,比如个性化推荐、精准营销、金融风控、精细化运营等等, 举个例子来理解用户画像的实际应用价值,我们经常用手机网购,淘宝里面的千人千面
- 通过“标签 tag”来对用户的多维度特征进行提炼和标识,那每个人的用户画像就需要存储,set集合就适合去重
- 用户画像不止针对某个人,也可以某一人群或行业的画像
- 利用redis可以很好的去重
下面是例子
/**
* 用户画像去重
*/
@Test
public void userProfile(){
BoundSetOperations operations = redisTemplate.boundSetOps("user:tags:1");
operations.add("car","student","rich","dog","guangdong","rich");
Set<String> set1 = operations.members();
System.out.println(set1);
operations.remove("dog");
Set<String> set2 = operations.members();
System.out.println(set2);
} 输出结果——可以看到,他会自动的去重

继续来看下一个例子
/**
* 社交应用
*/
@Test
public void testSocial(){
BoundSetOperations operationsLW = redisTemplate.boundSetOps("user:lw");
operationsLW.add("A","B","C","D","E");
System.out.println("老王的粉丝:"+operationsLW.members());
BoundSetOperations operationsXD = redisTemplate.boundSetOps("user:xd");
operationsXD.add("A","B","F","G","H","K","J","W");
System.out.println("小d的粉丝:"+operationsXD.members());
//差集
Set lwSet = operationsLW.diff("user:xd");
System.out.println("老王的专属用户:"+lwSet);
//差集
Set xdSet = operationsXD.diff("user:lw");
System.out.println("小D的专属用户:"+xdSet);
//交集
Set interSet = operationsLW.intersect("user:xd");
System.out.println("同时关注了两个人的用户:"+interSet);
//并集
Set unionSet = operationsLW.union("user:xd");
System.out.println("两个人的并集:"+unionSet);
//判断A用户是不是老王的粉丝
boolean flag = operationsLW.isMember("A");
System.out.println("A用户是不是老王的粉丝:"+flag);
}
本文作者为DBC,转载请注明。