| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 大数据 -> SpringBoot、Mybatis如何开启二级缓存及存储到Redis中 -> 正文阅读 |
|
[大数据]SpringBoot、Mybatis如何开启二级缓存及存储到Redis中 |
?一、得先了解一下什么是缓存?? ? ? ? 简单来说缓存就是存储计算机内存中一段数据。 ????????特点就是读写快,断电立即丢失 ? ? ? ? 好处:加快程序的响应,减轻数据库的访问压力,但是不推荐什么都做缓存,推荐那些查询多且增删改少的。 ????????缓存使用 cache 二级缓存 应用级缓存 ???????? 本地缓存: 存储在当前应用所在服务器内存中数据称之为本地缓存 ???????? 缺点 不能在分布式系统中共享 ???????? 分布式缓存: 缓存数据不在由应用服务器自身内存进行存储称之为分布式缓存 redis 二、可以使用Mybatis中提供的二级缓存?? ? ? ? 直接在mapper文件中书写<cache/>标签即可。但是这种缓存只要断电或是关闭服务、重启服务,缓存即刻丢失,并且占用在jvm虚拟机的内存中,且有多个服务节点时并不能共享,所以推荐二级缓存结合Redis使用,那么Redis和Mybatis是怎么结合实现缓存呢? ? ? ? ??Mybatis中Cache标签中的Type属性默认为PerpetualCache这个类,该类实现了Cache接口,由此可知我们也可以模仿写个实现类。 ????????? 三、结合Redis实现二级缓存? ? ? ? 第一步实现Cache这个接口并将Mapper文件cache标签中将type属性书写成自己实现的类 ? ? ? ? 注意:要给实现的这个类添加一个String类型的id并且提供有参的构造方法及get ???????? ????????Base cache implementations must have a constructor that takes a String id as a parameter ? ? ? ? 翻译:基本缓存实现必须有一个接受String id作为参数的构造函数 ? ? ? ? 第二步、由于RedisTemplate的是由工厂来管理,但是我们此时的这个类并不是由Spring初始化完成的,所以我们现在需要如何在一个不是工厂管理对象中,获取一个工厂管理的对象? ????????在此我们就要实现ApplicationContextAware(关心)这个类来获得RedisTemplate这个对象
第三步、实现如下的方法,这样就做到了将缓存中的数据存储到Redis中了,并且数据可以保存,不会因为重启服务、关闭服务、断电等影响。当然也没有那么绝对,因为Redis中的持久化机制。
?效果: ?最后RedisTemplate序列化
|
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/23 23:35:19- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |