springcache的使用(小白也看得懂)

简介

SpringCache整合Redis可以使用Spring提供的@Cacheable注解来实现对Redis的缓存操作。使用这种方式可以轻松地在应用程序中启用缓存,并且不需要手动编写访问Redis的代码。在配置文件中需要配置Redis的连接信息以及缓存管理器。使用这种方式可以做到轻松配置,易维护。

Spring Cache 是一个框架,实现了基于注解的缓存功能,只需要简单地加一个注解,就能实现缓存功能。

Spring Cache 提供了一层抽象,底层可以切换不同的缓存实现,例如:

  • EHCache

  • Caffeine

  • Redis(常用)

我们只需要导入对应数据库依赖即可切换不同的数据库,这里使用redis,所以我们还需要导入redis的依赖。 

使用

 导入依赖


	org.springframework.boot
	spring-boot-starter-cache
    2.7.3  		            		       	                  

在application.yml中配置redis信息

spring:
  redis:
    host: xxxxxx
    port: 6379
    password: xxxxxx
    database: 1

 

在SpringCache中提供了很多缓存操作的注解,常见的是以下的几个:

注解 说明
@EnableCaching 开启缓存注解功能,通常加在启动类上
@Cacheable 在方法执行前先查询缓存中是否有数据,如果有数据,则直接返回缓存数据;如果没有缓存数据,调用方法并将方法返回值放到缓存中
@CachePut 将方法的返回值放到缓存中
@CacheEvict 将一条或多条数据从缓存中删除

1.@EaableCaching加在启动类上,其作用就是开启缓存注解驱动。

 2.@Cacheable加在方法上,其作用就是添加数据到缓存中和从缓存中获取数据,通常使用在查询方法上。

   测试

springcache的使用(小白也看得懂)_第1张图片

 

 cacheNames表示数据在缓存中key的前缀名,key表示缓存中key的后缀。

key的值的格式为下:
springcache的使用(小白也看得懂)_第2张图片

#result表示最终return的数据。 

此时的步骤就是:先到缓存中查询,如果存在该对应的数据就直接将数据返回给客户端,就连getById都不会执行,如果不存在就会执行getById方法,最终再将查询的数据按照格式存入缓存中。

springcache的使用(小白也看得懂)_第3张图片

 3.@CachePut,其作用就是将数据保存到数据库的同时将将数据也缓存到缓存中,一般用在新增方法上。

  测试

springcache的使用(小白也看得懂)_第4张图片

结果为下:

springcache的使用(小白也看得懂)_第5张图片

 springcache的使用(小白也看得懂)_第6张图片

4.@CacheEvict,其作用就是将一条或多条数据从缓存中删除。

  测试

springcache的使用(小白也看得懂)_第7张图片

这里的功能是删除所有用户数据的缓存,如果需要删除指定的用户数据,可以在@CacheEvict中设置key的属性值。

结果为下:

springcache的使用(小白也看得懂)_第8张图片 

总结 

 springCache底层本质还是redis这种非关系型数据库来做缓存,通过对应的注解大大减少了我们的开发时间。(本质上还是使用redis做缓存)

你可能感兴趣的:(SpringBoot,redis,spring,boot)