VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > 编程开发 > Java教程 >
  • 第九章 分布缓存实战-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集 案例实战社交应用里面之关注、粉丝、共同好友案例

简介:案例实战社交应用里面之关注、粉丝、共同好友案例

  • 背景

    • 社交应用里面的知识,关注、粉丝、共同好友案例
  • 案例实战

image-20210413134244293

 

  • 代码
 
 
 
 
 
 
    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

相关教程