缓存的主要作用是暂时在内存中保存业务系统的数据处理结果,并且等待下次访问时再次使用。在很多场景下对于经常会请求并且实时性要求不高的数缓存是很有必要的。
当redis可以实现缓存,并且是基于第三方服务的缓存,也是比较常用的。这里来说明一下基于全内存的本地缓存实现,常用到基于内存的缓存有1、mybatis框架缓存2、guava cache缓存
一、mytabis框架缓存
mytabis框架缓存可用于数据库查找等数据的缓存
1、添加缓存依赖
|
|
这里需要注意jar的冲突,如果有jar包冲突就如上解决冲突jar,如果没有就不用
2、整合合spring配置如下
|
|
其中ehcache.xml如下:
3、代码中运用
可以在需要缓存的方法前加cache注解,如在一个service方法上添加@Cacheable
4、测试
可以用test类来调用getType 类2次,以debug日志级别观察sql语句打印次数,发现几次调用只有一次sql的执行。
二、guava cache缓存
可用于数据库数据结果集缓存,或常用接口数据缓存
1、先引入guava依赖
|
|
2、以登录后缓存登录用户信息为例
功能描述:当用户登录后,需要根据用户id获取用户信息,并且用户信息使用频繁,可用guava缓存
可以用test类,连续几次调用getAccountById
方法,发现短是时间为在,只有一次调用,其它都是直接从缓存获取
3、以不常更新数据为例
a、新建一个缓存变量类
|
|
b、缓存调用及实现
|
|
c、测试
可用一个test类,连续调用getTestInfo
缓存方法,可观察结果