用SpringCache操作Redis缓存数据
- 1. Spring Cache是什么
- 2. Spring Cache 常用注释
- 3. Spring Cache 的使用步骤
- 4. 使用Spring Cache操作Redis
1. Spring Cache是什么
Spring Cache是一个框架,实现了基于注解的缓存功能,只需要简单的加一个注解,就能实现缓存功能。
Spring Cache 提供了一层抽象,底层可以切换为不同cache来实现。实际就是通过CacheManager接口来统一不同缓存技术。
针对不同的缓存技术需要实现不同的CacheManager:
2. Spring Cache 常用注释
在SpringBoot中,加上上面的注解,就可以实现缓存,具体的实现见下面
使用实例:
@CachePut(value = "userCache",key = "#user.id")//user:获取方法的参数
@CacheEvict(value = "userCache",key = "#id")
@Cacheable(value = "userCache",key="#id",condition = "#result != null")
@CacheEvict(value = "setmealCache",allEntries = true)//allEntries 表示清除setmealCache分类下面的所有缓存数据
注释中参数的含义:
- value:缓存的名称,每个名称下面有多个key
- key:缓存的内容,通常需要动态的生成,即利用 ‘#’ 来实现
- condition:缓存条件,满足条件时才会进行缓存
- allEntries:表示清除setmealCache分类下面的所有缓存数据
3. Spring Cache 的使用步骤
1.引入相关的依赖(引入starter-web即可将缓存存储在内存中)
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<scope>compile</scope>
</dependency>
2.在项目启动类上加上@EnableCaching注释
3.注入CacheManager
4. 给需要缓存的方法加上注释
注意:如果方法的返回值为一个List,那么对应的类要实现序列化接口
通过以上的操作,可以使缓存暂时存在内存中,当项目关闭时,缓存就会删除。这是不可取的,所以需要将缓存存在redis中来克服这个问题,如下:
4. 使用Spring Cache操作Redis
处理完成上面的步骤,还得进行如下3个操作:
1.引入reids和cache的依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-cache</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
2.配置好redis
3.配置好cache