必备redis6教程-分布式缓存Redis6.X+高可用集群课程介绍-小滴课堂

第九章 分布缓存实战-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就是第一
      • 给某个用户加积分
      • 查看某个用户的积分
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值