`

SSM之simple-spring-memcached简介

阅读更多
官网:http://code.google.com/p/simple-spring-memcached/wiki/Getting_Started
参考:http://www.open-open.com/lib/view/open1340270181768.html

memcached是一款非常优秀的分布式缓存工具,有效提升了按主键检索数据的性能问题。而simple-spring-memcached组件通过与spring框架整合,让memcached的调用变得更加简单。

simple-spring-memcached本质上是采用了AOP的方式来实现缓存的调用和管理,其核心组件声明了一些Advice,当遇到相应的切入点时,会执行这些Advice来对memcached加以管理。

切入点是通过标签的方式来进行声明的,在项目开发时,通常在DAO的方法上加以相应的标签描述,来表示组件对该方法的拦截
组件所提供的切入点主要包括以下几种:
ReadThroughSingleCache、ReadThroughMultiCache、ReadThroughAssignCache
当遇到查询方法声明这些切入点时,组件首先会从缓存中读取数据,取到数据则跳过查询方法,直接返回。
取不到数据在执行查询方法,并将查询结果放入缓存,以便下一次获取。
InvalidateSingleCache、InvalidateMultiCache、InvalidateAssignCache
当遇到删除方法声明这些切入点时,组件会删除缓存中的对应实体
UpdateSingleCache、UpdateMultiCache、UpdateAssignCache
当遇到更新方法声明这些切入点是,组件会更新缓存中对应的实体,以便下次从缓存中读取出的数据状态是最新的

simple-spring-memcached本身并不提供cache机制的实现,只是为了cache的调用更加简单而设计的。
在cache的实现上使用的是第三方组件(如x-memcached和spy-memcached),官方给出了针对这两种组件的相关配置

注解:
@CacheKeyMethod
@ParameterValueKeyProvider、@ReturnValueKeyProvider
@ParameterDataUpdateContent、@ReturnDataUpdateContent
ReadThroughSingleCache、ReadThroughMultiCache、ReadThroughAssignCache
UpdateSingleCache、UpdateMultiCache、UpdateAssignCache
InvalidateSingleCache、InvalidateMultiCache、InvalidateAssignCache
@ReadCounterFromCache
@IncrementCounterInCache , @DecrementCounterInCache
@UpdateCounterInCache


http://code.google.com/p/simple-spring-memcached/wiki/Getting_Started
http://www.open-open.com/lib/view/open1340270181768.html


分享到:
评论
2 楼 anlun.wang 2013-08-26  
kld208 写道
public class XMemcachedConfiguration extends CacheConfiguration 
{
  private Integer maxAwayTime;

    private Integer connectionPoolSize;

    private Configuration configuration;

    private Boolean failureMode;

    private Map<SocketOption<?>, Object> socketOptions;

    private Long healSessionInterval;

    private Integer mergeFactor;

    private Boolean optimizeGet;

    private Boolean optimizeMergeBuffer;

    private Boolean enableHeartBeat;

   ……
   ……
}
该类中定义了部分参数,并定义了对应的get,set方法,另外该类继承了CacheConfiguration ,其中包含以下参数
    private boolean consistentHashing;

    private boolean useBinaryProtocol;

    private Integer operationTimeout;
问题是,XMemcachedConfiguration和CacheConfiguration类均没有定义以上3个参数的get,set方法,这几个参数是如何赋值和使用呢?


用了lombok工具的@Data注解,编译时自动生成getter,setter
1 楼 kld208 2012-08-28  
public class XMemcachedConfiguration extends CacheConfiguration 
{
  private Integer maxAwayTime;

    private Integer connectionPoolSize;

    private Configuration configuration;

    private Boolean failureMode;

    private Map<SocketOption<?>, Object> socketOptions;

    private Long healSessionInterval;

    private Integer mergeFactor;

    private Boolean optimizeGet;

    private Boolean optimizeMergeBuffer;

    private Boolean enableHeartBeat;

   ……
   ……
}
该类中定义了部分参数,并定义了对应的get,set方法,另外该类继承了CacheConfiguration ,其中包含以下参数
    private boolean consistentHashing;

    private boolean useBinaryProtocol;

    private Integer operationTimeout;
问题是,XMemcachedConfiguration和CacheConfiguration类均没有定义以上3个参数的get,set方法,这几个参数是如何赋值和使用呢?

相关推荐

Global site tag (gtag.js) - Google Analytics