如何使用监听器实现 将mysql数据存入redis做初始化
文章目录
- 分析
- 监听器
- 监听器使用到的方法
- 查询所有文章数据 --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做初始化相关推荐
- php 将查询出的数组数据存入redis
我们从数据库查询出来的数据一般为数组的形式, 而redis是不支持存入数组的, 一种解决办法是将数组转化为json数据,再将json存入redis,之后取出时再将json转化为php数组. 但将取出的 ...
- canal下载 linux_canal实时同步mysql数据到redis或ElasticSearch
一.Canal架包下载上传 (一)下载 官网架包地址为:https://github.com/alibaba/canal/releases/tag/canal-1.1.5-alpha-2 本人百度云盘 ...
- spark操作redis_spark数据存入redis
使用Spark Streaming SQL进行PV/UV统计 作者:关文选,花名云魄,阿里云E-MapReduce 高级开发工程师,专注于流式计算,Spark Contributor 1.背景介绍 P ...
- MYSQL统计UV和PV_使用redis做pv、uv、click统计
redis实时统计 设计思路: 1. 前端smarty插件(smarty_function_murl),将网站所有的连接生成一个urlid,后端根据获取的参数将需要的数据存入redis. 2.后端插件 ...
- 怎样将redis写入mysql_使用redis做mysql缓存
应用Redis实现数据的读写,同时利用队列处理器定时将数据写入mysql. 同时要注意避免冲突,在redis启动时去mysql读取所有表键值存入redis中,往redis写数据时,对redis主键自增 ...
- redis写入mysql 使用redis做mysql缓存
应用Redis实现数据的读写,同时利用队列处理器定时将数据写入mysql. 同时要注意避免冲突,在redis启动时去mysql读取所有表键值存入redis中,往redis写数据时,对redis主键自增 ...
- RHEL 7.8 64bit MYSQL linux-generic 8.0.20 初始化安装
1. 准备最基础信息的my.cnf本案例my.cnf配置文件是最基础的初始化配置文件,只能保证mysql服务正常开启,并不适用生产环境, 关于更多关于buffer.logfile等性能参数需要根据主机 ...
- python读取串口数据保存到mysql数据库_Python3读取Excel数据存入MySQL的方法
Python是数据分析的强大利器. 利用Python做数据分析,第一步就是学习如何读取日常工作中产生各种excel报表并存入数据中,方便后续数据处理. 这里向大家分享python3如何使用xlrd读取 ...
- django存入mysql数据库_django如何存数据到一个mysql数据表里面
让我们聊聊这个话题, django如何存数据至mysql数据表里面,你会用什么方法?正常情况下,我们form逻辑处理后,直接form.save(),是,这个方法没毛病:但有没有其他的方法呢?假如我们有 ...
最新文章
- 如何提取明细表头_会计新手,如何开展做账工作?
- 学习开发自己的composer包,并使用GitHub实时更新到Packagist
- gptuefi优势_UEFI+GPT的区别,有啥不同?写的很详细易懂
- wordpress实现搜索页关键词高亮
- WDM驱动程序入门(3)——安装步骤
- 【系统架构设计师】软考高级职称,一次通过,2017年下半年系统架构设计师考试论文真题(论软件架构风格)
- 让我们深入了解PP YOLO做出的贡献
- 倪光南:微软故意放任 Windows 盗版;淘宝为性别歧视道歉;乐视亏损 139 亿 | CSDN极客头条...
- 【开发经验】在Flutter中使用dart的单例模式
- 把两个pdf合并成一个如何解决?
- git 报错解决方法:Your branch is ahead of ‘origin/dev‘ by 65 commits.
- qt 文件大图标、列表等样式切换_跬步千里,厚积薄发:深度操作系统v15.9版正式发布...
- 深入CSS vertical-align属性
- 关于 RabbitMQ,应该没有比这更详细的教程了!
- nohup怎么更改名字_公司相关信息可以变更吗?公司注销怎么处理?
- Python数据分析pygal填充数据到世界地图
- fdma调制解调matlab,信号与系统Matlab实验—频分多址FDMA
- 2022年最受欢迎的10款网络游戏
- GIF动画制作工具哪个好
- 会计学考计算机二级哪些科有用,计算机二级考哪个科目比较好?