simple-cache说明文档-注解化自动缓存,redis、memcached
2017-02-17 19:21
573 查看
simple-cache说明文档
1.注意事项:
强烈建议系统各项业务使用缓存,大弧度缓解数据库压力
2.面向问题:
1)缓解数据库压力,提升服务端并发上限,提升业务代码执行效率。
3.核心对象(注解):
1)@CacheWrite
写缓存,方法执行后,将结果写入缓存。
2)@CacheWipe:
清理单个缓存,方法执行后,清理缓存
3)@CacheWipes
CacheWipe扩展版,用于清理多个缓存。
4.功能特色:
1)弱化缓存“层”的概念
2)支持缓存KEY
3)支持缓存带参写入与清理
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){
}
注:方法执行后,程序会根据类、方法、pkField指定的参数值生成一个方法KEY,并且将方法的结果写入缓存,并设置validTime有效时长,默认10秒,下次调用直接返回缓存,不会进入方法代码逻辑。
3)精准使用,指定key,可清理:
@CacheWrite(key=CacheFinal.SYSTEM_TAGS,validTime=3600)
public List<TagForSys> loadSysTags(){
}
//指定参数/时间
@CacheWrite(key=CacheFinal.ANCHOR_TAGS,validTime=60,fields="uid")
public
List<TagForAnchor> loadAnchorTags(Integer uid){
}
注:方法执行后,程序会根据CacheWrite指定的key生成缓存。如果指定了pkField字段,程序会根据key+pkField字段的值生成缓存。并设置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清理缓存,如果指定了pkField字段,程序会根据key+pkField字段的值清理缓存。
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.8
8.配置文件(Spring):
<aop:aspectj-autoproxy />
<aop:aspectj-autoproxy proxy-target-class="true" />
<!-- 配置程序缓存 需要实现com.simple.cache.sample.CacheFace接口-->
<bean id="localCache" class="com.app.server.cache.LocalCache"></bean>
<!-- 配置切面缓存 -->
<bean id="simpleCacheHandle" class="com.simple.cache.handle.CacheHandle">
<property name="cacheFace" ref="localCache" />
</bean>
<aop:config>
<aop:aspect id="superAop" ref="simpleCacheHandle">
<aop:pointcut id="cachePointcut"
expression="@annotation(com.simple.cache.annotation.CacheWrite)||@annotation(com.simple.cache.annotation.CacheWipe)" />
<aop:around method="CacheProcess" pointcut-ref="cachePointcut"/>
</aop:aspect>
</aop:config>
9.版权与作者
作者:WebSOS
反馈邮箱:644556636@qq.com
转载请保留版权。
1.注意事项:
强烈建议系统各项业务使用缓存,大弧度缓解数据库压力
2.面向问题:
1)缓解数据库压力,提升服务端并发上限,提升业务代码执行效率。
3.核心对象(注解):
1)@CacheWrite
写缓存,方法执行后,将结果写入缓存。
2)@CacheWipe:
清理单个缓存,方法执行后,清理缓存
3)@CacheWipes
CacheWipe扩展版,用于清理多个缓存。
4.功能特色:
1)弱化缓存“层”的概念
2)支持缓存KEY
3)支持缓存带参写入与清理
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){
}
注:方法执行后,程序会根据类、方法、pkField指定的参数值生成一个方法KEY,并且将方法的结果写入缓存,并设置validTime有效时长,默认10秒,下次调用直接返回缓存,不会进入方法代码逻辑。
3)精准使用,指定key,可清理:
@CacheWrite(key=CacheFinal.SYSTEM_TAGS,validTime=3600)
public List<TagForSys> loadSysTags(){
}
//指定参数/时间
@CacheWrite(key=CacheFinal.ANCHOR_TAGS,validTime=60,fields="uid")
public
List<TagForAnchor> loadAnchorTags(Integer uid){
}
注:方法执行后,程序会根据CacheWrite指定的key生成缓存。如果指定了pkField字段,程序会根据key+pkField字段的值生成缓存。并设置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清理缓存,如果指定了pkField字段,程序会根据key+pkField字段的值清理缓存。
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.8
8.配置文件(Spring):
<aop:aspectj-autoproxy />
<aop:aspectj-autoproxy proxy-target-class="true" />
<!-- 配置程序缓存 需要实现com.simple.cache.sample.CacheFace接口-->
<bean id="localCache" class="com.app.server.cache.LocalCache"></bean>
<!-- 配置切面缓存 -->
<bean id="simpleCacheHandle" class="com.simple.cache.handle.CacheHandle">
<property name="cacheFace" ref="localCache" />
</bean>
<aop:config>
<aop:aspect id="superAop" ref="simpleCacheHandle">
<aop:pointcut id="cachePointcut"
expression="@annotation(com.simple.cache.annotation.CacheWrite)||@annotation(com.simple.cache.annotation.CacheWipe)" />
<aop:around method="CacheProcess" pointcut-ref="cachePointcut"/>
</aop:aspect>
</aop:config>
9.版权与作者
作者:WebSOS
反馈邮箱:644556636@qq.com
转载请保留版权。
相关文章推荐
- Spring Boot Cache + redis 设置有效时间和自动刷新缓存,时间支持在配置文件中配置
- 高效缓存Memcached 集成使用说明
- 高效缓存Memcached 集成使用说明
- 浏览器缓存详解:expires,cache-control,last-modified,etag详细说明
- simple-spring-memcached统一缓存的使用实例4
- simple-spring-memcached统一缓存的使用实例3
- 一个小工具,用来自动清除Outlook 的地址自动完成缓存 (Outlook e-mail address auto complete cache)
- Python Web 框架 Django缓存层 - django-redis-cache
- NSURLRequestCachePolicy缓存配置说明
- 关于使用ASP.NET4.0 OutputCacheProvider做缓存注意的地方(缓存放入redis)
- 使用Simple-Spring-Memcached注解做缓存操作
- 关于自动生成数据库的说明文档
- 关于自动生成数据库的说明文档
- 自动生成数据库的说明文档
- memcached和redis中清空缓存
- 关于自动生成数据库的说明文档
- Powerdesigner逆向自动生成数据库的说明文档
- Java实现简单的LRU缓存(A Simple LRU Cache in 5 lines)
- simple-spring-memcached统一缓存的使用实例
- 高效缓存Memcached 集成使用说明