上文 Spring boot2.7整合jetcache方法缓存 我们做了个方法缓存的案例
可以将接口内容缓存起来 是能大大提高效率的 但是 我们接口的数据大多来自数据库 如果我们调用增删查改 它的数据变化了
那缓存的内容就会因为没有及时更新变的不准确
例如 我们这样
我们在上面 定义了 一个 book对象 并给对应的 id和name字段赋值
get请求 getMin 返回 book对象 接口方法 绑定了缓存
而 post请求 setBook 接受一个 book对象 然后 改变原本的book对象
我们来测试运行效果
我们调用 get请求 一切正常
然后 我们调用 post请求 修改调book的数据
重新请求get
但因为缓存的存在 返回结果 依旧是 第一次的结果
因为 返回结果实际是重 缓存取的
我们导个包
import com.alicp.jetcache.anno.CacheUpdate;
然后 在更新的函数中这样写
@CacheUpdate(name="book",key="1",value="#bindata")
我们要更新的缓存 name 叫 book的缓存 如果 你有id为key 就可以加上key参数
例如
@CacheUpdate(name="book", key="#id", value="#BinData")
然后 value 告诉它 我们要用 参数中的 BinData 替换缓存结果
因为 这个操作 一定要通过key去改 所以 我就还是加上了一个key给get
然后 我们重写启动项目
重复之前的操作
这次 查询就可以获取更新了
导包
import com.alicp.jetcache.anno.CacheInvalidate;
方法头上加上
@CacheInvalidate(name="book",key = "1")
就是 通过 key和name 删除指定缓存