SpringCache技术简述

1、什么是SpringCache

Spring提供的缓存框架可以提供基于注解的缓存功能,底层可以切换不同的缓存技术:EHCache、Caffeine、Redis

依赖

<dependency>
    <grouppId>org.springframework.boot</grouppId>
	<artifactId>spring-boot-starter-cache</artifactId>
	<version>2.7.3</version>
</dependency>
还要添加使用的缓存技术依赖

2、常用注解使用

@EnableCaching添加在类上方,该类中的方法可以使用注解缓存功能
@CachePut 添加在方法上方,将方法的返回值存入缓存
@Cacheable        添加在方法上方,执行方法之前先查看缓存中是否存在数据,如果存在则直接返回数据,如果没有则执行方法并将方法返回值存入缓存
@CacheEvict       将1/n条数据从缓存中删除

3、注解使用详解

1.@Cacheable

@Cacheable( value = "" , key ="") 

value是设置前缀,通过前缀和key去缓存中查找是否存在对应的数据,如果存在则直接返回数据。如果不存在则执行方法,并将方法的返回值缓存

@Cacheable ( value = "" , key = "" , unless = "" , condition = "")

unless : 设置条件,条件不成立则存入缓存,条件成立则不存入缓存(推荐,可以通过#result 使用方法的返回值)

condition:设置条件,条件成立则存入缓存,条件不成立则不存入

2.@CachePut ( name = "" , cacheNames= "" , key = "")

缓存中的结构 ----> 前缀 : : key = value ,value和cacheNames都是设置前缀

key = " #result.id " 表示取方法返回值的id属性作为key,缓存中的值就是属性id的值

key = " #形参名.id" 表示取方法形参的第一个参数的id属性作为key

3.CacheEvict

@CacheEvict   ( value = "" , key = "") : 根据前缀和key删除缓存

@CacheEvict (value = "" , allEntries = true): 删除所有符合设置前缀的缓存数据

4.和Redis有什么区别呢?

缺点:缺少灵活性,如无法设置过期时间

优点:对代码没有侵入

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值