.net 批量更新_Spring Boot实战解决高并发数据入库: Redis 缓存+MySQL 批量入库

d01b359b9adf25bb2c1c5cb76063866b.png
  • CSDN博客地址(关注,点赞)
  • 人工智能推荐
  • GitHub(Star,Fork,Watch)

前言

最近在做阅读类的业务,需要记录用户的PV,UV;
项目状况:前期尝试业务阶段;
特点:
  • 快速实现(不需要做太重,满足初期推广运营即可)
  • 快速投入市场去运营

收集用户的原始数据,三要素:

  • 在什么时间
  • 阅读哪篇文章

提到PV,UV脑海中首先浮现特点:

  • 需要考虑性能(每个客户每打开一篇文章进行记录)
  • 允许数据有较小误差(少部分数据丢失)

架构设计

  • 架构图:

c52f79a2916c4b48971b556c1a524d2b.png

- 时序图

85663a620fcbbfb7dfe9a3d35c300cfc.png

- 记录基础数据MySQL表结构

CREATE 
  • 技术实现方案

SpringBoot

Redis

MySQL

代码实现

  • 完整代码(GitHub,欢迎大家Star,Fork,Watch)

https://github.com/dangnianchuntian/springboot

  • 主要代码展示
  • Controller
/*
  • Service
/*

测试

  • 模拟用户请求访问后台(多次请求)

4f955f5101416dc1325d42d71ac3716c.png
  • 查看缓存中访问数据

0d750ff0a28f08014f2867c45b600bce.png
  • 模拟定时任务将缓存中数据同步到DB中

249f7d51bbef9ea9a10161e95e89e8ff.png
  • 这时查看缓存中的数据已经没了

6925ef0acf5f2e503fbf535197a4af2a.png
  • 查看数据库表结构

99824897cb5ec35f7e514fffa0224d63.png

总结

  • 项目中定时任务
  • 问演示方便用http代替定时任务调度;实际项目中用XXL-job,参考:定时任务的选型及改造
  • 定时任务项目中用redis锁防止并发(定时任务调度端多次调度等),参考:Redis实现计数器---接口防刷---升级版(Redis+Lua)
  • 后期运营数据可以从阅读记录表中拉数据进行相关分析
  • 访问量大:可以将MySQL中的阅读记录表定时迁移走(MySQL建历史表,MongoDB等)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值