Aspect-Cache-Plug基于方法的切片缓存插件
Aspect-Cache-Plug,基于方法的切片缓存插件。
先介绍缓存使用下场景:
对同一请求(针对不同请求参数)进行缓存,可以减少服务器压力、加快响应速度
查询接口:根据请求条件对返回结果进行缓存
更新接口:根据条件对指定缓存进行清除
@Aspect(key = "query") public Object query(String q) { // do something return null; }
@Aspect(key = "update") public Object update(String q) { // do something return null; }
缓存query方法返回值
<bean class="com.aspect.config.CacheConfig"> <property name="key" value="query"/> <property name="space" value="space2"/> <property name="keyExpression"> <value>this[0]+new java.util.Date()</value> </property> <property name="timeout" value="60"/> </bean>
执行update时清除query的返回结果
<bean class="com.aspect.config.ClearConfig"> <property name="key" value="update"/> <property name="cachedConfigs"> <list> <value>query</value> </list> </property> </bean>
加入spring支持
<aop:config> <aop:pointcut id="adviceAspectPoint" expression="execution(* com.sample..*.*(..)) and @annotation(Aspect)" /> <aop:aspect ref="adviceAspect"> <aop:around method="execute" pointcut-ref="adviceAspectPoint" arg-names="Aspect" /> </aop:aspect> </aop:config> <bean id="adviceAspect" class="com.aspect.AdviceAspect"> <property name="rootKey" value="aspect.cache."/> <property name="cache" ref="cache"/> <property name="caches"> <list> <bean class="com.aspect.config.CacheConfig"> <property name="key" value="queryMethod1"/> <property name="space" value="space1"/> <property name="keyExpression"> <value>this[1]+"."+this[2]</value> </property> <property name="domainExpression"> <value>this[0]</value> </property> <property name="timeout" value="60"/> </bean> <bean class="com.aspect.config.CacheConfig"> <property name="key" value="queryMethod2"/> <property name="space" value="space1"/> <property name="keyExpression"> <value>this[0]</value> </property> <property name="timeout" value="60"/> </bean> <bean class="com.aspect.config.CacheConfig"> <property name="key" value="space2QueryMethod1"/> <property name="space" value="space2"/> <property name="keyExpression"> <value>this[0]+new java.util.Date()</value> </property> <property name="timeout" value="60"/> </bean> </list> </property> <property name="clears"> <list> <bean class="com.aspect.config.ClearConfig"> <property name="key" value="updateMethod1"/> <property name="domainExpression"> <value>this[0]</value> </property> <property name="cachedConfigs"> <list> <value>queryMethod1</value> <value>space2QueryMethod1</value> </list> </property> </bean> </list> </property> </bean>
评论
tank-cache基于 Node.js 的缓存插件
tank-cache是一套基于nodejs的文件缓存插件,易于集成,Api可满足大部分项目的使用需求,文件存储位置配置,可通过npm进行安装安装npminstall--savetank-cache使用
tank-cache基于 Node.js 的缓存插件
0
coody-cache基于切面的缓存插件
simple-cache说明文档1、注意事项:建议系统各项业务以层的形式使用缓存,大弧度缓解数据库压力2、面向问题:1)缓解数据库压力,提升服务端并发上限,提升业务代码执行效率。3、核心对象(注解):
coody-cache基于切面的缓存插件
0
Secode_level_cacheRails 的 AR 对象缓存插件
Rails的ActiveRecord自身没有带强大的对象缓存功能,这是AR的一个重大的遗憾。早在20
Secode_level_cacheRails 的 AR 对象缓存插件
0
ARCUS基于 memcached 的云缓存
Arcus是一个基于memcached的云缓存,由NAVERCorp公司开发。arcus-memcached经过大幅度的修改,可以支持NAVER的功能和性能要求。Arcus支持多种数据机构(List,
ARCUS基于 memcached 的云缓存
0
Secode_level_cacheRails 的 AR 对象缓存插件
Rails的ActiveRecord自身没有带强大的对象缓存功能,这是AR的一个重大的遗憾。早在2008年开始,我们就借鉴了Java强大的ORM框架Hibernate的二级对象缓存编写了这个Rails
Secode_level_cacheRails 的 AR 对象缓存插件
0