Java缓存组件、工具类
双涡轮缓存组件是一个双版本缓存切换组件,主要解决缓存更新期间,需要先删后更新造成缓存空档期,数据为空的问题;提供触发异步更新能力,调用方无感知,无需处理过期更新逻辑,使用A、B两个版本缓存,提供缓存更新期间的历史数据读取。
-
底层存储了三个key,分别是turboKey(当前生效中的版本缓存信息)、cache_a、cache_b(两个版本缓存),同一时刻处于生效中的缓存只有A或者B
-
读取缓存时,若发现当前缓存(比如是版本A)已达到过期时间,仍将这份过期数据返回给使用方,同时触发异步线程更新另一个版本缓存更新(比如版本B),并完成turbokey中生效的版本缓存信息
-
流程图:待提供
- 触发式自动更新缓存
- 支持String、SortedSet数据结构
- 内置处理并发加锁更新缓存
- 支持Hash、List数据结构
- 支持异步线程池设置
- 多次缓存更新异常熔断机制:针对调用方法缓存数据构造-DataRebuildReader执行异常记录错误次数做策略
- 支持注解形式使用
- 采用AOP代理方式支持Jedis所有命令