Skip to content

MCeDo/component

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

component

Java缓存组件、工具类

一、双涡轮缓存组件

1、组件目录:com.example.component.cache

2、什么是双涡轮缓存组件?

双涡轮缓存组件是一个双版本缓存切换组件,主要解决缓存更新期间,需要先删后更新造成缓存空档期,数据为空的问题;提供触发异步更新能力,调用方无感知,无需处理过期更新逻辑,使用A、B两个版本缓存,提供缓存更新期间的历史数据读取。

3、原理

  • 底层存储了三个key,分别是turboKey(当前生效中的版本缓存信息)、cache_a、cache_b(两个版本缓存),同一时刻处于生效中的缓存只有A或者B

  • 读取缓存时,若发现当前缓存(比如是版本A)已达到过期时间,仍将这份过期数据返回给使用方,同时触发异步线程更新另一个版本缓存更新(比如版本B),并完成turbokey中生效的版本缓存信息

  • 流程图:待提供

4、支持的功能

  • 触发式自动更新缓存
  • 支持String、SortedSet数据结构
  • 内置处理并发加锁更新缓存

5、待优化点和新feature

  • 支持Hash、List数据结构
  • 支持异步线程池设置
  • 多次缓存更新异常熔断机制:针对调用方法缓存数据构造-DataRebuildReader执行异常记录错误次数做策略
  • 支持注解形式使用
  • 采用AOP代理方式支持Jedis所有命令

6、使用流程

7、FQA

About

Java缓存组件、工具类

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages