加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

微信亿级在线点赞体系,用Redis怎样实现?

发布时间:2019-12-07 02:56:56 所属栏目:编程 来源:站长网
导读:副问题#e# 点同意果各人都不会生疏,像微信这样的交际产物中都有,但别看成果小,想要做好必要思量的对象还挺多的,如海量数据的漫衍式存储、漫衍式缓存、多 IDC 的数据同等性、会见路由到机房的算法等等。 图片来 Pexels 本文先容大型交际平台点赞体系的设

            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 { 

 

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读