设为首页 - 加入收藏 ASP站长网(Aspzz.Cn)- 科技、建站、经验、云计算、5G、大数据,站长网!
热搜: 创业者 手机 数据
当前位置: 首页 > 站长学院 > MySql教程 > 正文

微信亿级在线点赞系统,用Redis如何实现?(11)

发布时间:2019-12-06 01:43 所属栏目:115 来源:站长网
导读:UserLikeul=getByLikedUserIdAndLikedPostId(like.getLikedUserId(),like.getLikedPostId()); if(ul==null){ //没有记录,直接存入 save(like); }else{ //有记录,需要更新 ul.setStatus(like.getStatus()); save(u

            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 { 

 

(编辑:ASP站长网)

网友评论
推荐文章
    热点阅读