Skip to content

Halfmoonly/jetcache-practice

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

jetcache-practice

jetcache的两级缓存降低了远程缓存的访问压力

注解使用

方法级别注解:

  • 更新:@CacheUpdate
  • 读取:@Cache

basic_jetcache

使用十分方便,安心的应对大多数数据库操作与业务操作

本地缓存

  1. 更新缓存@CacheUpdate,默认更新远程缓存
  2. 每次读取@Cache,优先读取本地缓存,此时本地缓存为空,则同步远程缓存到本地
  3. 再更新远程缓存,即使本地缓存未过期,jetcache直接覆盖本地缓存

所以正常情况下,两级缓存之间是一致的

最佳实践是本地缓存设置的过期时间稍微短一些,避免本地服务OOM

本地缓存无法更新问题排查

缓存组件位于Common模块,其他各服务同时引用缓存组件,如

  • 数据模块
  • 其他模块Biz

存在一种情况,Biz业务用到了用户配置缓存场景

  • 用户配置缓存的读取和更新控制器都位于数据模块
  • Biz模块内部查询用户配置的时候只是调用缓存组件的读取api

上述场景,远程缓存是数据模块放置与更新的,因此对应的本地缓存也只能是数据模块,远程缓存更新的时候永远也无法触发Biz模块本地缓存的更新

因此造成Biz模块两级缓存不一致的问题,Biz模块优先读取过时的本地缓存就会造成业务混乱

自定义缓存组件

custom_jetcache_framework

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages