您的位置:首页 > 数据库 > Memcache

使用java5的注解和Sping/AspectJ的AOP 来实现Memcached的缓存

2011-07-12 16:03 806 查看
Simple-spring-memcached使用说明
一、简介
在J***A中使用Memcached进行行缓存是比较复杂的。Simple-Spring-Memcachd(SSM)企图通过实现几个基础的使用项来简化Memcached的使用。
该项在java-memcached客户端的基础上使用java5的注解和Sping/AspectJ的AOP,使能够在Sping中管理bean缓存。使用Simple-Spring-Memcached只需要简单的配置和在要缓存的方法的返回值或参数上标注上相应的注解就可以。
二、依赖包
1、Memcached Server
当然你首先需要的是一个Memcached服务器。
2、Simple-Spring-Memcached依赖的JAR包。
(1)、Spring是必须的,并且版本为2.5.4或以上。
(2)、两个AspectJ(aspectj-1.6.11.jar,aspectjweaver-1.6.6.jar)包也是必须的,
版本为1.6.0或以上。
(3)、Apache Commons Logging,和Log4J。
(4)、Memcachd的Java客户端java-memcached(version:2.6.1)
三、配置
1、你需要在你的Spring 配置文件中引入 Simple-Spring-Memcached 的配置
文件.。方法如下:
<import resource="classpath:simplesm-context.xml" />
2、配置打开AspectJ
在Spring配置文件如加入<aop:aspectj-autoproxy />
3、在Spring配置文件中配置Memcached服务器信息
<bean id="connectionConfig" class="net.nelz.simplesm.config.MemcachedConnectionConfig">
<property name="servers">
<value>127.0.0.1:11211</value> <!--设置服务器的Ip和端口,多个之间用“,”或空格隔开-->
</property>
<property name="weights" value="1"/> <!--设置每个服务器的权重值,多个之间用","或空格隔开-->
</bean>
注意:id必须为connectionConfig
四、使用方法
在使用Memcached之前你必须理解键值的概念。
1、@CacheKeyMethod注解
在SSM中你可以指定一个生成缓存使用的Key的对象。Simple-Spring-Memcached将会通过这些对象来生成唯一的Key。所有给定的对象SSM首先会判断是否有被@CacheKeyMethod注解的方法。如果找到并且符合条件(没有参数,并且返回值为String)的方法,这些方法将会生成唯一的Key值。
如果没有找到被@CacheKeyMethod注解的方法,SSM将会使用Object.toString()方法。
2、9大注解
下面的九个注解是本项目最实用的注解。这些注解会标注那个方法申请缓存。这些缓存包括:
·那些为使用指定的Key值和单一的缓存值。
·那些为使用计算得到Key和单一的缓存值。
·那些为使用计算得到Key和多个缓存值。
(1) @ReadThroughSingleCache, @ReadThroughMultiCache,
@ReadThroughAssignCache
这几个为使用最频繁的注解。它们遵循一下流程:
1)、检查缓存中是否存在,如果存在,返回缓存数据并退出。
2)、如果在缓存中没有找到,将会继续访问下面的方法。
3)、在返回数据之前,先把数据保存到缓存中,方便下次使用。
4)、返回计算后的数据。
(2)、@InvalidateSingleCache,@InvalidateMultiCache,@InvalidateAssignCache
这些注解是把ReadThrough*Cach注解调用保存的信息从缓存中清
除。当你知道某个数据已经变得陈旧,你想在下次访问是强制刷新数据
这些注解是非常有用的。
(3)、@UpdateSingleCache, @UpdateMultiCache, @UpdateAssignCache

这些注解可以做个改善服务性能使用。它们不像Invalidate*Cache
注解把数据从缓存中移除,它们是将会强制更新缓存中的信息,从而
使在此访问被ReadThrough*Cache注解的方法时不用在调用底层的方
法。
五、实例
1、@ReadThroughSingleCache


@ReadThroughSingleCache(namespace="_user_test_",expiration=3600)
public List<Users> findAll(@ParameterValueKeyProvider String
url){
return userDAO.findAll();
}

说明:本项目是通过开源框架 Simple-Spring-Memcached(SSM)进行改写的,
原文连接:http://code.google.com/p/simple-spring-memcached/
改变后的下载地址:http://download.csdn.net/source/3437007
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: