SpringCache本地缓存

SpringCache缓存

在SpringCache官网中,有一个缓存抽象的概念,其核心就是将缓存应用于Java方法中,从而减少基于缓存中可用信息的执行次数。换句话来说。就是每次调用目标方法前,SpringCache都会先检查该方法是否正对给定参数执行,如果已经执行过,就直接返回缓存的结果。(通俗的讲,就是查看缓存里面是否有对应的数据,如果有就返回缓存的数据),而无需执行实际方法、如果该方法上位执行。则执行该方法(缓存中没有对应的数据就执行方法获取对应数据,并进行缓存),并缓存结果并返回给用户。这样就不用多次去执行数据库操作,减少cpu和io的消耗。

启动配置类中加入

@EnableCaching  //开启缓存
// 声明缓存管理器--》给Dao层加入缓存管理器
@Bean
public CacheManager cacheManager() {
    // 返回一个ConcurrentMapCacheManager的实例,其中包含一个名为"users"的缓存区域,用于存储和管理相关的数据
    return new ConcurrentMapCacheManager("users");
}

缓存注解的使用

@Cacheable:

指示 Spring 在调用该方法时使用缓存。方法返回值将被存储在缓存中,以后对同样参数的调用将从缓存中获取结果,而不是重新执行方法。

@Cacheable(cacheNames = "users",key = "#accountid")  // cacheNames缓存的名称    key  缓存的键
public Account findById(int accountid) {
   //查询操作
    return account;
}
@CacheEvict:

指示 Spring 在方法执行后清除缓存。通常用于删除缓存中的数据。

@CacheEvict(cacheNames = "users",key = "#accountid")
    public Account delect(int accountid) {
        //删除操作
        return account;
    }
@CachePut:

指示 Spring 在方法调用时更新缓存。与 @Cacheable 不同的是,这个注解会始终执行方法,并更新缓存的值。

@CachePut(cacheNames = "users",key = "#accountid")
public Account update(int accountid) {
   //更新操作
    return account;
}
@Caching

组合使用多个缓存注解。用来在一个方法上同时应用多个缓存操作,比如缓存、清除缓存等。

@Caching(
        cacheable = @Cacheable(value = "users", key = "#accountid"),
        evict = @CacheEvict(value = "users", key = "#accountid"),
        put = @CachePut(value = "users", key = "#accountid")
)
public Account getAccount(int  accountid) {
    // 获取用户信息
    return account;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值