您现在的位置是:首页 >其他 >Spring Cache网站首页其他

Spring Cache

Java小白,一起学习 2024-07-09 10:33:18
简介Spring Cache

简介

基于注解的缓存功能,提供了一层抽象,底层切换不同的cache实现。具体是通过CacheManager接口来统一不同的缓存技术。
CacheManager是Spring提供的各种缓存技术抽象接口。
针对不同的缓存技术需要实现不同的CacheManager
在这里插入图片描述

常用注解

在这里插入图片描述
在springboot项目中,使用缓存技术只需要在项目中导入相关缓存技术的依赖包,并在启动类上使用@EnableCaching开启缓存支持即可
例如:使用Redis作为缓存技术,只需要导入 Spring data Redis的Maven坐标即可

@CachePut将返回值放到缓存,多用于插入

@CachePut(value=“”,key=“”)
value代表缓存名称,比如说用户缓存,菜品缓存,可以认为是一类缓存
key代表缓存的key,可以动态引用
比如:(这种表达式叫SpEL)

  • #result.id(result返回值),
  • #root.method(root内置对象),#root.methodName
  • #user.name(user参数名)
  • #root.args[0],第一个参数,
  • #p0,也是第一个参数

@CacheEvice将一条或者多条数据从缓存中删除,多用于修改,删除

@CacheEvict(value=“”,key=“”)
key也是用SpEL表达式

  • allEntries=true删除这个名称的所有缓存

@Cacheable执行spring前查看缓存,有数据直接返回,没有则保存到缓存,多用于查询

@Cacheable(value=" “,key=” ")
key也是用SpEL表达式

  • unless="#result == null"判断返回结果为空就不缓存
  • key=“#user.id+‘_’+user.name”,根据条件查询

缓存产品使用Redis

默认使用的是Map集合,重启服务将不存在
引入一下依赖,即可使用Redis

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-redis</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-cache</artifactId>
        </dependency>
风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。