zoukankan      html  css  js  c++  java
  • 记一次分页数据重复

    庞大的数据量,前端展示往往会选择分页。但是在分页获取数据的时候,有新的数据插入,就会存在重复的问题。

     案发现场,祖传代码MongDB,获取视频是分页获取的。分析下原因,比如每次获取10条数据,按上传时间倒序排列。

    那么第一次获取的数据是 10,9,8,7,6,5,4,3,2,1

    在这个时间段有人上传了数据12,11

    那么在第二次分页获取数据的时候,倒序排列12,11,10,9,8,7,6,5,4,3,2,1,0,-1,-2,-3,-4,-5,-6 这样 2,1 数据就重复了

    解决思路,第一次分页index =0的时候,存一个time,便于理解这里存一个id。第一次分页查询后存储 10,以后每次分页增加一个查询条件 id < 10。

    //这里用的redisson
    RBucket<Object> bucket = redissonClient.getBucket(userId+"requestTime"); Object o = bucket.get() == null? 0 : bucket.get(); long requestTime = pageIndex == 0 ? 0 : Long.valueOf(String.valueOf(o));//第一次请求数据,取返回数据的第一条存入redis
    ...
    if(pageIndex == 0){
    bucket.set(data.get(0).getTime());
    }
     
  • 相关阅读:
    C# using的三种用法
    C# 匿名方法和Lambda表达式
    c#中内置委托
    c#委托中的匿名方法和lambda表达式
    java生成条形码
    根据日期筛选和模糊查询
    mysql中ifnull()方法的用法
    mysql数据库中的出发器
    动态SQL之<where>、<if>条件判断
    动态sql
  • 原文地址:https://www.cnblogs.com/zeussbook/p/14871958.html
Copyright © 2011-2022 走看看