文章目录

  • 分析
  • 监听器
  • 监听器使用到的方法
    • 查询所有文章数据 --mysql操作
    • 如果存在对应的vo 则跳过循环 --redis操作
    • 将vo添加到redis缓存中 --redis操作

分析

监听器

  • 必须实现ApplicationListener<ContextRefreshedEvent>接口,作为spring的监听器,并重写onApplicationEvent方法即可完成监听操作,也就是启动项目的时候会做的初始化操作
  • 在mysql数据库中查出所有文章对象
  • 将每个文章对象通过BeanUtils.copyProperties(st, vo);转化成vo对象
  • 将每个vo对象存进对应的redis的key中 作为value值
@Component
public class RedisDataInitListener implements ApplicationListener<ContextRefreshedEvent> {@Autowiredprivate IStrategyService strategyService;@Autowiredprivate IStrategyStatisVORedisService strategyStatisVORedisService;//    当spring容器启动并初始化完成后执行@Overridepublic void onApplicationEvent(ContextRefreshedEvent contextRefreshedEvent) {System.out.println("--------------攻略统计vo对象初始化-begin--------------------");
//1.查询mysql中所有攻略数据List<Strategy>List<Strategy> list = strategyService.list();
//2.封装成vo对象for (Strategy st : list) {//        如果存在对应的vo 则跳过此循环if (strategyStatisVORedisService.isVoExists(st.getId())){continue;}StrategyStatisVO vo = new StrategyStatisVO();BeanUtils.copyProperties(st, vo);vo.setStrategyId(st.getId());
//    添加到redis缓存中strategyStatisVORedisService.setStrategyVo(vo);}System.out.println("--------------攻略统计vo对象初始化-end--------------------");}
}

监听器使用到的方法

查询所有文章数据 --mysql操作

  • 这是mybatisPlus的业务层,直接使用自带的API即可查询
    List<Strategy> list = strategyService.list();

如果存在对应的vo 则跳过循环 --redis操作

 public boolean isVoExists(Long id) {String key = RedisKeys.STRATEGY_STATIS_VO.join(id.toString());return template.hasKey(key);}

将vo添加到redis缓存中 --redis操作

  • 将文章对象转成vo对象,然后把vo对象放入redis中做初始化~
 public void setStrategyVo(StrategyStatisVO vo) {//       拼接vo的keyString key = RedisKeys.STRATEGY_STATIS_VO.join(vo.getStrategyId().toString());
//    更新votemplate.opsForValue().set(key, JSON.toJSONString(vo));}

如何使用监听器实现 将mysql数据存入redis做初始化相关推荐

  1. php 将查询出的数组数据存入redis

    我们从数据库查询出来的数据一般为数组的形式, 而redis是不支持存入数组的, 一种解决办法是将数组转化为json数据,再将json存入redis,之后取出时再将json转化为php数组. 但将取出的 ...

  2. canal下载 linux_canal实时同步mysql数据到redis或ElasticSearch

    一.Canal架包下载上传 (一)下载 官网架包地址为:https://github.com/alibaba/canal/releases/tag/canal-1.1.5-alpha-2 本人百度云盘 ...

  3. spark操作redis_spark数据存入redis

    使用Spark Streaming SQL进行PV/UV统计 作者:关文选,花名云魄,阿里云E-MapReduce 高级开发工程师,专注于流式计算,Spark Contributor 1.背景介绍 P ...

  4. MYSQL统计UV和PV_使用redis做pv、uv、click统计

    redis实时统计 设计思路: 1. 前端smarty插件(smarty_function_murl),将网站所有的连接生成一个urlid,后端根据获取的参数将需要的数据存入redis. 2.后端插件 ...

  5. 怎样将redis写入mysql_使用redis做mysql缓存

    应用Redis实现数据的读写,同时利用队列处理器定时将数据写入mysql. 同时要注意避免冲突,在redis启动时去mysql读取所有表键值存入redis中,往redis写数据时,对redis主键自增 ...

  6. redis写入mysql 使用redis做mysql缓存

    应用Redis实现数据的读写,同时利用队列处理器定时将数据写入mysql. 同时要注意避免冲突,在redis启动时去mysql读取所有表键值存入redis中,往redis写数据时,对redis主键自增 ...

  7. RHEL 7.8 64bit MYSQL linux-generic 8.0.20 初始化安装

    1. 准备最基础信息的my.cnf本案例my.cnf配置文件是最基础的初始化配置文件,只能保证mysql服务正常开启,并不适用生产环境, 关于更多关于buffer.logfile等性能参数需要根据主机 ...

  8. python读取串口数据保存到mysql数据库_Python3读取Excel数据存入MySQL的方法

    Python是数据分析的强大利器. 利用Python做数据分析,第一步就是学习如何读取日常工作中产生各种excel报表并存入数据中,方便后续数据处理. 这里向大家分享python3如何使用xlrd读取 ...

  9. django存入mysql数据库_django如何存数据到一个mysql数据表里面

    让我们聊聊这个话题, django如何存数据至mysql数据表里面,你会用什么方法?正常情况下,我们form逻辑处理后,直接form.save(),是,这个方法没毛病:但有没有其他的方法呢?假如我们有 ...

最新文章

  1. 如何提取明细表头_会计新手,如何开展做账工作?
  2. 学习开发自己的composer包,并使用GitHub实时更新到Packagist
  3. gptuefi优势_UEFI+GPT的区别,有啥不同?写的很详细易懂
  4. wordpress实现搜索页关键词高亮
  5. WDM驱动程序入门(3)——安装步骤
  6. 【系统架构设计师】软考高级职称,一次通过,2017年下半年系统架构设计师考试论文真题(论软件架构风格)
  7. 让我们深入了解PP YOLO做出的贡献
  8. 倪光南:微软故意放任 Windows 盗版;淘宝为性别歧视道歉;乐视亏损 139 亿 | CSDN极客头条...
  9. 【开发经验】在Flutter中使用dart的单例模式
  10. 把两个pdf合并成一个如何解决?
  11. git 报错解决方法:Your branch is ahead of ‘origin/dev‘ by 65 commits.
  12. qt 文件大图标、列表等样式切换_跬步千里,厚积薄发:深度操作系统v15.9版正式发布...
  13. 深入CSS vertical-align属性
  14. 关于 RabbitMQ,应该没有比这更详细的教程了!
  15. nohup怎么更改名字_公司相关信息可以变更吗?公司注销怎么处理?
  16. Python数据分析pygal填充数据到世界地图
  17. fdma调制解调matlab,信号与系统Matlab实验—频分多址FDMA
  18. 2022年最受欢迎的10款网络游戏
  19. GIF动画制作工具哪个好
  20. 会计学考计算机二级哪些科有用,计算机二级考哪个科目比较好?

热门文章

  1. 简答滑动窗口法找BBA类型字符串
  2. stm32进入HardFault的异常定位方法
  3. 什么是高防CDN,高防CDN是如何防御网络攻击的呢?
  4. 我是怎么成长的---职业【转】
  5. WB实验(免疫印迹实验)
  6. 公开课机器学习笔记(13)支持向量机三 核函数
  7. 最少钱币数(动态规划)
  8. MyBatis Plus 模糊查询报错, 但是不影响返回结果[解决]
  9. 游戏运营环节的一些关键转化率
  10. 同一个网线,接服务器网卡不亮,接笔记本网卡亮