-
第九章 分布缓存实战-Set集合数据结构最佳案例实战
第1集 案例实战之大数据下的用户画像标签去重
简介:案例实战需求之大数据下的用户画像标签去重
-
介绍
- 用户画像 英文为User Profile,是根据用户基本属性、社会属性、行为属性、心理属性等真实信息而抽象出的一个标签化的、虚拟的用户模型。“用户画像”的实质是对 “人”的数字化。
- 应用场景有很多,比如个性化推荐、精准营销、金融风控、精细化运营等等, 举个例子来理解用户画像的实际应用价值,我们经常用手机网购,淘宝里面的千人千面
- 通过“标签 tag”来对用户的多维度特征进行提炼和标识,那每个人的用户画像就需要存储,set集合就适合去重
- 用户画像不止针对某个人,也可以某一人群或行业的画像
- 利用redis可以很好的去重
-
案例
BoundSetOperations operations = redisTemplate.boundSetOps("user:tags:1");
operations.add("car","student","rich","guangdong","dog","rich");
Set<String> set1 = operations.members();
System.out.println(set1);
operations.remove("dog");
Set<String> set2 = operations.members();
System.out.println(set2);
return JsonData.buildSuccess();
第2集 案例实战社交应用里面之关注、粉丝、共同好友案例
简介:案例实战社交应用里面之关注、粉丝、共同好友案例
-
背景
- 社交应用里面的知识,关注、粉丝、共同好友案例
-
案例实战
- 代码
public void testSet(){
BoundSetOperations operationLW = redisTemplate.boundSetOps("user:lw");
operationLW.add("A","B","C","D","E");
System.out.println("老王的粉丝:"+operationLW.members());
BoundSetOperations operationXD = redisTemplate.boundSetOps("user:xd");
operationXD.add("A","B","F","G","H","J");
System.out.println("小D的粉丝:"+operationXD.members());
//差集
Set lwSet = operationLW.diff("user:xd");
System.out.println("老王的优势:"+lwSet);
//差集
Set xdSet = operationXD.diff("user:lw");
System.out.println("小滴的优势:"+xdSet);
//交集
Set interSet = operationLW.intersect("user:xd");
System.out.println("共同好友:"+interSet);
//并集
Set unionSet = operationLW.union("user:xd");
System.out.println("两个人的并集:"+unionSet);
//用户A是否是 老王 的粉丝
boolean flag = operationLW.isMember("A");
System.out.println(flag);
}
第3集 案例实战之SortedSet开发用户积分实时榜单最佳实践
简介:案例实战之SortedSet用户积分实时榜单最佳实践
-
背景
- 用户玩游戏-积分实时榜单
- IT视频热销实时榜单
- 电商商品热销实时榜单
- 一般的排行榜读多写少,可以对 master 进行写入操作,然后多个 slave 进行读取操作。
- 如果是对象记得重写HashCode与Equals方法
-
对象准备
public class UserPointVO {
public UserPointVO(String username, String phone) {
this.username = username;
this.phone = phone;
}
private String username;
private String phone;
}
@Test
void testData() {
UserPoint p1 = new UserPoint("老王","13113");
UserPoint p2 = new UserPoint("老A","324");
UserPoint p3 = new UserPoint("老B","242");
UserPoint p4 = new UserPoint("老C","542345");
UserPoint p5 = new UserPoint("老D","235");
UserPoint p6 = new UserPoint("老E","1245");
UserPoint p7 = new UserPoint("老F","2356432");
UserPoint p8 = new UserPoint("老G","532332");
BoundZSetOperations<String, UserPoint> operations = redisTemplate.boundZSetOps("point:rank:real");
operations.add(p1,888);
...
}
-
接口开发
- 返回榜单-从大到小排序
- 查看这个人的排名,从大到小,0就是第一
- 给某个用户加积分
- 查看某个用户的积分
第4集 案例实战之SortedSet开发用户积分实时榜单多接口实战
简介:案例实战之SortedSet用户积分实时榜单多接口实战
-
多接口实战
-
接口开发
- 返回榜单-从大到小排序
- 查看这个人的排名,从大到小,0就是第一
- 给某个用户加积分
- 查看某个用户的积分
- 来源:https://www.cnblogs.com/Xd17324217006/p/14925990.html
-
最新更新
python爬虫及其可视化
使用python爬取豆瓣电影短评评论内容
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
SQL SERVER中递归
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
uniapp/H5 获取手机桌面壁纸 (静态壁纸)
[前端] DNS解析与优化
为什么在js中需要添加addEventListener()?
JS模块化系统
js通过Object.defineProperty() 定义和控制对象
这是目前我见过最好的跨域解决方案!
减少回流与重绘
减少回流与重绘
如何使用KrpanoToolJS在浏览器切图
performance.now() 与 Date.now() 对比