【浅学Redis】Spring Cache的基础使用

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分类下面的所有缓存数据

注释中参数的含义:

  1. value:缓存的名称,每个名称下面有多个key
  2. key:缓存的内容,通常需要动态的生成,即利用 ‘#’ 来实现
  3. condition:缓存条件,满足条件时才会进行缓存
  4. 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

在这里插入图片描述


版权声明:本文为qq_52276036原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。