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);