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

简介

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

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

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

  • EHCache

  • Caffeine

  • Redis(常用)

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

使用

 导入依赖

<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-cache</artifactId>
    <version>2.7.3</version>  		            		       	                  
</dependency>

在application.yml中配置redis信息

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

 

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

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

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

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

   测试

 

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

key的值的格式为下:

#result表示最终return的数据。 

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

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

  测试

结果为下:

 

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

  测试

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

结果为下:

 

总结 

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

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值