From 3c1c2ec15cb7bfca0c2a111e3ca4397c99129f92 Mon Sep 17 00:00:00 2001 From: chengkun <2500338766@qq.com> Date: Mon, 16 May 2022 14:10:20 +0800 Subject: [PATCH] =?UTF-8?q?feature1.0.0:=E4=BF=AE=E6=AD=A3=E5=90=8C?= =?UTF-8?q?=E6=AD=A5=E7=82=B9=E8=B5=9E=E8=AE=B0=E5=BD=95=E5=88=B0=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E5=BA=93=E7=9A=84BUG?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/TiktokLikeServiceImpl.java | 66 ++++++++++--------- 1 file changed, 34 insertions(+), 32 deletions(-) diff --git a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/impl/TiktokLikeServiceImpl.java b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/impl/TiktokLikeServiceImpl.java index 5ed35cd..5712a22 100644 --- a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/impl/TiktokLikeServiceImpl.java +++ b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/impl/TiktokLikeServiceImpl.java @@ -44,40 +44,42 @@ public class TiktokLikeServiceImpl implements TiktokLikeService { long startTime = System.currentTimeMillis(); //拿缓存 String redisKey = RedisKeyConstant.TIKTOK_USER_LIKE_KEY; - Cursor> like = redisService.getHashScan(redisKey); - List list = new ArrayList<>(); - List keyList = new ArrayList<>(); - while (like.hasNext()){ - Map.Entry next = like.next(); - String key = (String) next.getKey(); - //分离出 userId,imgId - String[] split = key.split(":"); - String userId = split[0]; - Long userLongId = Long.parseLong(userId); - String imgId = split[1]; - Long imgLongId = Long.parseLong(imgId); - //判断图片是否存在 - TiktokImg img = tiktokImgMapper.selectById(imgLongId); - if(img == null){ - //不存在则图片Id加入删除列表,遍历完删除 + if(redisService.hasKey(redisKey)){ + Cursor> like = redisService.getHashScan(redisKey); + List list = new ArrayList<>(); + List keyList = new ArrayList<>(); + while (like.hasNext()){ + Map.Entry next = like.next(); + String key = (String) next.getKey(); + //分离出 userId,imgId + String[] split = key.split(":"); + String userId = split[0]; + Long userLongId = Long.parseLong(userId); + String imgId = split[1]; + Long imgLongId = Long.parseLong(imgId); + //判断图片是否存在 + TiktokImg img = tiktokImgMapper.selectById(imgLongId); + if(img == null){ + //不存在则图片Id加入删除列表,遍历完删除 + keyList.add(key); + continue; + } + TiktokLike tiktokLike = new TiktokLike(); + tiktokLike.setUserId(userLongId); + tiktokLike.setImgId(imgLongId); + tiktokLike.setIsShow("1"); + tiktokLike.setSort(0); + tiktokLike.setCreateTime(new Date()); + tiktokLike.setUpdateTime(new Date()); + list.add(tiktokLike); keyList.add(key); - continue; } - TiktokLike tiktokLike = new TiktokLike(); - tiktokLike.setUserId(userLongId); - tiktokLike.setImgId(imgLongId); - tiktokLike.setIsShow("1"); - tiktokLike.setSort(0); - tiktokLike.setCreateTime(new Date()); - tiktokLike.setUpdateTime(new Date()); - list.add(tiktokLike); - keyList.add(key); - } - //数据插入数据库并删除缓存 - tiktokLikeMapper.insertBatch(list); - if(keyList.size() > 0){ - for (String key : keyList) { - redisService.deleteHashKey(redisKey, key); + //数据插入数据库并删除缓存 + tiktokLikeMapper.insertBatch(list); + if(keyList.size() > 0){ + for (String key : keyList) { + redisService.deleteHashKey(redisKey, key); + } } } log.info("==============redis同步点赞记录到db数据完成,耗时【{}】毫秒!===============",System.currentTimeMillis() - startTime);