java通俗易懵 2021-10-13 15:29 采纳率: 0%
浏览 40

redis排行榜新老数据,我没弄清楚

 public ResultVo order(Integer seasonId){
//获取赛季排行榜的所有数据1) List<OrderVo> orderVos = tArenaScoreMapper.selectAll(seasonId);
//添加到redis中
Set<ZSetOperations.TypedTuple<String>> tuples = new HashSet<>();
        for (OrderVo o:orderVos) {
            DefaultTypedTuple<String> tuple = new DefaultTypedTuple<String>(o.getUsername(),Double.valueOf(o.getScore()));
            tuples.add(tuple);
        }
        Long num = redisTemplate.opsForZSet().add(String.valueOf(seasonId), tuples);

//从redis中取出2) return redisTemplate.opsForZSet().reverseRangeWithScores; 
}

我的order方法是只查询显示,积分更新不在我这里操作。

不解的是:
1.所有用户积分不变时,方法被调用,我还是会执行(1)操作,然后去添加redis,这样mysql数据跟redis数据是一样的,添加redis时,新老数据怎么替换?是重新全部覆盖替换呢?还是redis会自动判断数据相等不替换呢?

2.有的用户积分变时,方法被调用,我执行(1)操作,然后去添加redis,这样mysql数据跟redis数据是不一样的,添加redis时,新老数据怎么替换?

  • 写回答

2条回答 默认 最新

  • java通俗易懵 2021-10-13 15:58
    关注

    或者说这种查询式的redis用法方案是错的?因为我好像每次都去请求数据库,并且添加到redis中

    评论

报告相同问题?

问题事件

  • 创建了问题 10月13日

悬赏问题

  • ¥15 x趋于0时tanx-sinx极限可以拆开算吗
  • ¥500 把面具戴到人脸上,请大家贡献智慧
  • ¥15 任意一个散点图自己下载其js脚本文件并做成独立的案例页面,不要作在线的,要离线状态。
  • ¥15 各位 帮我看看如何写代码,打出来的图形要和如下图呈现的一样,急
  • ¥30 c#打开word开启修订并实时显示批注
  • ¥15 如何解决ldsc的这条报错/index error
  • ¥15 VS2022+WDK驱动开发环境
  • ¥30 关于#java#的问题,请各位专家解答!
  • ¥30 vue+element根据数据循环生成多个table,如何实现最后一列 平均分合并
  • ¥20 pcf8563时钟芯片不启振