七叶笔记 » 数据库 » Redis整合Spring结合使用缓存实例

Redis整合Spring结合使用缓存实例

2、配置bean 在application.xml加入如下配置

其中配置文件redis一些配置数据redis.properties如下:

要扫这些properties文件,在application.xml加入如下配置

3、一些工具类 (1)RedisUtil 上面的bean中,RedisUtil是用来缓存和去除数据的实例

(2)MethodCacheInterceptor 切面MethodCacheInterceptor,这是用来给不同的方法来加入判断如果缓存存在数据,从缓存取数据。否则第一次从数据库取,并将结果保存到缓存 中去。

4、配置需要缓存的类或方法 在application.xml加入如下配置,有多个类或方法可以配置多个

5、执行结果: 写了一个简单的单元测试如下:

这是第一次执行单元测试的过程: MethodCacheInterceptor这个类中打了断点,然后每次查询前都会先进入这个方法

依次运行,发现没有缓存,所以会直接去查数据库

打印了出来的SQL语句:

第二次执行: 因为第一次执行时,已经写入缓存了。所以第二次直接从缓存中取数据

3、取两次的结果进行地址的对比: 发现两个不是同一个对象,没错,是对的。如果是使用ehcache的话,那么二者的内存地址会是一样的。那是因为redis和ehcache使用的缓存机制是不一样的。ehcache是基于本地电脑的内存使用缓存,所以使用缓存取数据时直接在本地电脑上取。转换成java对象就会是同一个内存地址,而redis它是在装有redis服务的电脑上(一般是另一台电脑),所以取数据时经过传输到本地,会对应到不同的内存地址,所以用==来比较会返回false。但是它确实是从缓存中去取的,这点我们从上面的断点可以看到。

以上就是本文的全部内容,希望对大家的学习有所帮助。

相关文章