Caheput,Cacheable,CacheEvict

        本文只介绍理论

        理论参考 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 注解来清除缓存。它会让你的应用程序更加稳定、可靠。

        

猜你喜欢

转载自blog.csdn.net/Deikey/article/details/131158086
今日推荐