jetcache的两级缓存降低了远程缓存的访问压力
方法级别注解:
- 更新:@CacheUpdate
- 读取:@Cache
使用十分方便,安心的应对大多数数据库操作与业务操作
- 更新缓存@CacheUpdate,默认更新远程缓存
- 每次读取@Cache,优先读取本地缓存,此时本地缓存为空,则同步远程缓存到本地
- 再更新远程缓存,即使本地缓存未过期,jetcache直接覆盖本地缓存
所以正常情况下,两级缓存之间是一致的
最佳实践是本地缓存设置的过期时间稍微短一些,避免本地服务OOM
缓存组件位于Common模块,其他各服务同时引用缓存组件,如
- 数据模块
- 其他模块Biz
存在一种情况,Biz业务用到了用户配置缓存场景
- 用户配置缓存的读取和更新控制器都位于数据模块
- Biz模块内部查询用户配置的时候只是调用缓存组件的读取api
上述场景,远程缓存是数据模块放置与更新的,因此对应的本地缓存也只能是数据模块,远程缓存更新的时候永远也无法触发Biz模块本地缓存的更新
因此造成Biz模块两级缓存不一致的问题,Biz模块优先读取过时的本地缓存就会造成业务混乱