Spring Cache基于注解的缓存功能

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

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

  • Redis
  • EHCache
  • Caffeine 

基本思路

 

 


入门案例

导入maven坐标 

在启动类里面添加注解:

@EnableCaching
@Slf4j
@SpringBootApplication
public class CacheDemoApplication {
    public static void main(String[] args) {
        SpringApplication.run(CacheDemoApplication.class,args);
        log.info("项目启动成功...");
    }
}

插入的时候保存到Redis缓存里面

查询的时候保存到Redis缓存里面

删除数据库数据的同时删除缓存中的数据


Spring Cache 是一个非常有用的功能,可以帮助应用程序提升性能,但也有一些潜在的缺点:

1.缓存一致性难题:当缓存与数据库或其他系统中的数据不一致时,可能导致数据不一致性的问题,需要谨慎处理缓存更新策略。
2.缓存击穿:指某个热点数据过期或被同时大量请求时,会导致大量请求直接打到数据库,造成数据库压力剧增。
3.缓存雪崩:指缓存中大量的数据在同一时间失效,导致大量的请求直接打到数据库,造成数据库瞬时压力过大。
4.内存占用问题:缓存需要一定的内存空间来存储数据,如果缓存数据量过大,会消耗大量的内存资源。
5.复杂性增加:引入缓存会增加系统的复杂性,特别是在多级缓存、分布式缓存的情况下,需要考虑缓存同步、一致性等问题。
6.缓存穿透:指查询一个不存在的数据,由于缓存无法命中,每次都要访问数据库,增加数据库的负载。

为了有效利用 Spring Cache,需要结合具体场景,合理选择缓存策略、缓存失效时间,并考虑好缓存更新时机和同步策略,以避免上述潜在问题。


当然啦这是最基础的用法,还有设置缓存时间、配置序列化json等用法 ,个人不太喜欢这种方法,建议直接用StringRedisTemplate

END

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值