Caheput,Cacheable,CacheEvict

本文介绍了SpringBoot中缓存的实现,包括@Cacheable的运行流程,用于更新缓存的@CachePut以及清除缓存的@CacheEvict注解的使用。@Cacheable在方法执行前检查缓存,@CachePut用于更新缓存内容,而@CacheEvict则用于在方法执行前后清除指定缓存,确保数据一致性与及时性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        本文只介绍理论

        理论参考 SpringBoot的缓存实现Cache和自定义缓存管理器

        详细使用方法参考

        spring cache 学习 —— @Cacheable 使用详解

        SpringCache之@CacheEvict注解的使用说明

        spring cache 学习——@CachePut 使用详解

Cacheable

        运行流程:

        1、方法运行之前,先去查询Cache(缓存组件),按照cacheNames指定的名字获取;(CacheManager先获取相应的缓存),第一次获取缓存如果没有Cache组件会自动创建。

        2、去Cache中查找缓存的内容,使用一个key,默认就是方法的参数;key是按照某种策略生成的;默认是使用keyGenerator生成的,默认使用SimpleKeyGenerator生成key;SimpleKeyGenerator生成key的默认策略;如果没有参数;key=new SimpleKey();如果有一个参数:key=参数的值如果有多个参数:key=new SimpleKey(params);

        3、没有查到缓存就调用目标方法;

        4、将目标方法返回的结果,放进缓存中@Cacheable标注的方法执行之前先来检查缓存中有没有这个数据,默认按照参数的值作为key去查询缓存,如果没有就运行方法并将结果放入缓存;以后再来调用就可以直接使用缓存中的数据;

Cacheput

        更新缓存,就是相当于再去查询数据库然后将结果放入缓存,从而将缓存中的数据进行更新的操作。

CacheEvict

        CacheEvict是Spring框架中的一个注解,它可以用来清除缓存。当我们使用CacheEvict注解时,它会在方法执行之前或之后清除缓存。CacheEvict注解有一些属性,可以用来指定要清除的缓存名称、缓存键等。

        CacheEvict的原理非常简单。当我们使用CacheEvict 注解时,它会在方法执行之前或之后清除缓存。具体来说,它会在方法执行之前或之后调用缓存管理器的evict方法,将指定的缓存清除掉。缓存管理器会根据缓存名称和缓存键来查找要清除的缓存,然后将其清除。
        使用CacheEvict注解可以带来很多好处。首先,它可以帮助我们解决缓存数据的过期问题。当缓存数据过期时,我们可以使用CacheEvict注解来清除缓存,从而保证缓存数据的及时更新。其次,它可以帮助我们解决缓存数据的不一致问题。当我们修改了数据库中的数据时,我们可以使用CacheEvict 注解来清除缓存,从而保证缓存数据的一致性。
        CacheEvict是一种非常有效的清除缓存的方法。它可以帮助我们解决缓存数据的过期、不一致等问题,从而提高应用程序的性能和可靠性。如果你正在开发一个需要使用缓存的应用程序,那么我建议你使用CacheEvict 注解来清除缓存。它会让你的应用程序更加稳定、可靠。

        

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值