記一次分頁數據重復


龐大的數據量,前端展示往往會選擇分頁。但是在分頁獲取數據的時候,有新的數據插入,就會存在重復的問題。

 

 案發現場,祖傳代碼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());
}
 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM