微信亿级在线点赞系统,用Redis如何实现?
UserLike ul = getByLikedUserIdAndLikedPostId(like.getLikedUserId(), like.getLikedPostId()); if (ul == null){ //没有记录,直接存入 save(like); }else{ //有记录,需要更新 ul.setStatus(like.getStatus()); save(ul); } } }
@Override @Transactional public void transLikedCountFromRedis2DB() { List<LikedCountDTO> list = redisService.getLikedCountFromRedis(); for (LikedCountDTO dto : list) { UserInfo user = userService.findById(dto.getId()); //点赞数量属于无关紧要的操作,出错无需抛异常 if (user != null){ Integer likeNum = user.getLikeNum() + dto.getCount(); user.setLikeNum(likeNum); //更新点赞数量 userService.updateInfo(user); } } } } 数据库的操作就这些,主要还是增删改查。 开启定时任务持久化存储到数据库 定时任务 Quartz 很强大,就用它了。Quartz 使用步骤如下: ①添加依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-quartz</artifactId> </dependency> ②编写配置文件 package com.solo.coderiver.user.config;
import com.solo.coderiver.user.task.LikeTask; import org.quartz.*; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration;
@Configuration public class QuartzConfig {
(编辑:威海站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |