两级缓存方案
一 需求
1. 集群式缓存
2. 支持注解缓存
2. 缓存定时自动更新
3. 可支持单机缓存部署
4. 可支持手动缓存
5. 管理界面*
二 方案
考虑用J2CACHE,加上spring cache支持注解
1. CacheChannel
https://apidoc.gitee.com/ld/J2Cache/
2. Spring cache 常用注解
注解 | param | 示例 |
---|---|---|
@Cacheable | cacheNames 模块名,value 命名空间,key 唯一key,condition 哪种情况下才缓存结果 | @Cacheable(value = "models", key = "#testModel.name", condition = "#testModel.address != '' ") |
@CacheEvict | cacheNames 模块名,value 命名空间 ,allEntries 标记是否删除命名空间下,key | @CacheEvict(value = "models", allEntries = true) |
@CachePut | cacheNames 模块名,value 命名空间,key | @CachePut(value = "models", key = "#name") |
3. 定时缓存
结合@Scheduled(fixedDelay=任务间的延时时间,fixedRate=任务的间隔时间,cron=表达式)使用
示例:
@Cacheable(cacheNames="test",key="name")
@Schedule(fixedDelay=2000)
public String getCache(String key){
return "test";
}