coody-cache 基于切面的缓存插件 项目简介
simple-cache说明文档1、注意事项:建议系统各项业务以层的形式使用缓存,大弧度缓解数据库压力2、面向问题:1) 缓解数据库压力,提升服务端并发上限,提升业务代码执行效率。3、核心对象(注解):1) @CacheWrite写缓存,方法执行后,将结果写入缓存。2) @CacheWipe:清理单个缓存,方法执行后,清理缓存4、功能特色:1) 弱化缓存“层”的概念2) 支持缓存KEY3) 支持缓存带参写入与清理4) 任意Bean方法均支持缓存5) 支持redis、memcached、localCache等缓存(凡是支持超时时间缓存均可)5、如何为一个方法添加缓存1) 简单使用,不要求清理,不强调实时性(默认缓存时间10秒) @CacheWrite
public TagForUser loadUserTags(Integer uid,Integer tid){
}注:方法执行后,程序会根据类、方法、参数值生成一个方法KEY,并且将方法的结果写入缓存,并设置validTime有效时长,默认10秒,下次调用直接返回缓存,不会进入方法代码逻辑。2) 简单使用,不要求清理,区分参数,设置缓存时间 //单个参数
@CacheWrite(fields="uid")
public TagForUser loadUserTags(Integer uid,Integer tid){
}
//多个参数
@CacheWrite(fields={"uid","tid"})
public TagForUser loadUserTags(Integer uid,Integer tid){
}
//设置缓存时间
@CacheWrite(fields={"uid","tid"},validTime=60)
public TagForUser loadUserTags(Integer uid,Integer tid){
}注:方法执行后,程序会根据类、方法、fields指定的参数值生成一个方法KEY,并且将方法的结果写入缓存,并设置validTime有效时长,默认10秒,下次调用直接返回缓存,不会进入方法代码逻辑。3) 精准使用,指定key,可清理: @CacheWrite(key=CacheFinal.SYSTEM_TAGS,validTime=3600)
public ListloadSysTags(){
}
//指定参数/时间
@CacheWrite(key=CacheFinal.ANCHOR_TAGS,validTime=60,fields="uid")
public ListloadAnchorTags(Integer uid){
}注:方法执行后,程序会根据CacheWrite指定的key生成缓存。如果指定了fields字段,程序会根据key+fields字段的值生成缓存。并设置validTime有效时长,默认10秒,下次调用直接返回缓存,不会进入方法代码逻辑。6、数据更新后,如何清理缓存1) 常规清理,清理指定key//不强调参数,仅清理
@CacheWipe(key=CacheFinal.ANCHOR_TAGS)
public Integer saveUserTags(TagForUser userTag){
}
//强调参数,清理
@CacheWipe(key=CacheFinal.ANCHOR_TAGS,fields="userTag.tid")
public Integer saveUserTags(TagForUser userTag){
}注:方法执行后,程序会根据CacheWipe 指定的KEY清理缓存,如果指定了fields字段,程序会根据key+fields字段的值清理缓存。2)多缓存清理,清理多套key //不强调参数,清理多套缓存
@CacheWipe(key=CacheFinal.PET_YEAR_VALUE_CACHE),
@CacheWipe(key=CacheFinal.PET_YEAR_DAY_VALUE_CACHE)}
public Integer addSendValue(Integer uid,Integer sendValue){
}
@CacheWipe(key=CacheFinal.PET_YEAR_VALUE_CACHE,fields="uid"),
@CacheWipe(key=CacheFinal.PET_YEAR_DAY_VALUE_CACHE,fields="uid")}
public Integer addSendValue(Integer uid,Integer sendValue){
}注:方法执行后,程序会根据CacheWipes读取CacheWipe集合,并分别执行常规清理规则7、运行环境版本JAR:simple-cache-1.0.jar 下载地址:https://pan.baidu.com/s/1kUVgxhX依赖JAR:aspectjrt.jar spring-core.jar运行环境:JDK1.88、配置文件(Spring): 9、版权与作者作者:WebSOS反馈邮箱:[email protected]
public TagForUser loadUserTags(Integer uid,Integer tid){
}注:方法执行后,程序会根据类、方法、参数值生成一个方法KEY,并且将方法的结果写入缓存,并设置validTime有效时长,默认10秒,下次调用直接返回缓存,不会进入方法代码逻辑。2) 简单使用,不要求清理,区分参数,设置缓存时间 //单个参数
@CacheWrite(fields="uid")
public TagForUser loadUserTags(Integer uid,Integer tid){
}
//多个参数
@CacheWrite(fields={"uid","tid"})
public TagForUser loadUserTags(Integer uid,Integer tid){
}
//设置缓存时间
@CacheWrite(fields={"uid","tid"},validTime=60)
public TagForUser loadUserTags(Integer uid,Integer tid){
}注:方法执行后,程序会根据类、方法、fields指定的参数值生成一个方法KEY,并且将方法的结果写入缓存,并设置validTime有效时长,默认10秒,下次调用直接返回缓存,不会进入方法代码逻辑。3) 精准使用,指定key,可清理: @CacheWrite(key=CacheFinal.SYSTEM_TAGS,validTime=3600)
public ListloadSysTags(){
}
//指定参数/时间
@CacheWrite(key=CacheFinal.ANCHOR_TAGS,validTime=60,fields="uid")
public ListloadAnchorTags(Integer uid){
}注:方法执行后,程序会根据CacheWrite指定的key生成缓存。如果指定了fields字段,程序会根据key+fields字段的值生成缓存。并设置validTime有效时长,默认10秒,下次调用直接返回缓存,不会进入方法代码逻辑。6、数据更新后,如何清理缓存1) 常规清理,清理指定key//不强调参数,仅清理
@CacheWipe(key=CacheFinal.ANCHOR_TAGS)
public Integer saveUserTags(TagForUser userTag){
}
//强调参数,清理
@CacheWipe(key=CacheFinal.ANCHOR_TAGS,fields="userTag.tid")
public Integer saveUserTags(TagForUser userTag){
}注:方法执行后,程序会根据CacheWipe 指定的KEY清理缓存,如果指定了fields字段,程序会根据key+fields字段的值清理缓存。2)多缓存清理,清理多套key //不强调参数,清理多套缓存
@CacheWipe(key=CacheFinal.PET_YEAR_VALUE_CACHE),
@CacheWipe(key=CacheFinal.PET_YEAR_DAY_VALUE_CACHE)}
public Integer addSendValue(Integer uid,Integer sendValue){
}
@CacheWipe(key=CacheFinal.PET_YEAR_VALUE_CACHE,fields="uid"),
@CacheWipe(key=CacheFinal.PET_YEAR_DAY_VALUE_CACHE,fields="uid")}
public Integer addSendValue(Integer uid,Integer sendValue){
}注:方法执行后,程序会根据CacheWipes读取CacheWipe集合,并分别执行常规清理规则7、运行环境版本JAR:simple-cache-1.0.jar 下载地址:https://pan.baidu.com/s/1kUVgxhX依赖JAR:aspectjrt.jar spring-core.jar运行环境:JDK1.88、配置文件(Spring): 9、版权与作者作者:WebSOS反馈邮箱:[email protected]