06 2023 档案
摘要:总体来说,缓存在使用的过程中主要面临以下几个问题: 1. 缓存击穿(某个热点数据的key失效了) 缓存中无数据,但是数据库中有数据,由于是热点key,如果同一时间大量请求进来会导致数据库压力大增 2. 缓存雪崩 与缓存击穿类似,只不过缓存雪崩是多个热点key同时失效 3. 缓存穿透 查询不存在的数据
阅读全文
摘要:实际项目中,如果使用统一的key的生成方式,可以自定义KeyGenerator。 参考如下代码: 点击查看代码 ``` @Bean public KeyGenerator keyGenerator() { return new KeyGenerator() { @Override public Ob
阅读全文
摘要:从缓存中移除相应的数据,触发缓存删除操作 * value:缓存名称 * key:缓存的key规则,可以使用SpringEL,默认是方法参数组合 * beforeInvocation: 缓存的清除在方法调用之前执行还是之后执行,默认为false 参考如下代码: 点击查看代码 ``` @Override
阅读全文
摘要:根据方法的请求参数对结果进行缓存,每次都会触发真实的方法调用* * value:缓存名称 * 缓存的key规则,可以使用SpringEL,默认是方法参数组合 * 参数condition:满足condition才缓存 参照如下的例子: 点击查看代码 ``` @Override @CachePut(va
阅读全文
摘要:* 可以标记在方法上,也可以标记在类上 * 参数key:缓存的key规则,可以使用SpringEL,默认是方法参数组合 * 参数value:缓存名称,可以指定多个 * 参数condition:满足condition才缓存 先看下面简单的例子: 点击查看代码 ``` @Override @Cachea
阅读全文
摘要:Spring Cache 是Spring 提供的一套的缓存解决方案,它不是具体的缓存实现,提供了一整套的配置、接口、注解等规范,用来整合当下流行的多种缓存产品。 1. SpringCache的引入 点击查看代码 ``` org.springframework.boot spring-boot-sta
阅读全文