XMemcached发布1.2.0-RC1

  XMemcached是一个基于java nio的 Memcached Client,正式发布1.2.0-RC1版本。此版本又是一个里程碑版本,开始支持memcached的二进制协议,并添加了几个更有价值的功能。此版本的主要改进如下:

1、 支持完整的memcached binary协议。XMemcached现在已经支持memcached的所有文本协议和二进制协议,成为一个比较完整的java client。Memcached的二进制协议带来更好的性能以及更好的可扩展性。在XMemcached中使用二进制协议,你只要添加一行代码:
 XMemcachedClientBuilder builder = .
  builder.setCommandFactory(
new  BinaryCommandFactory()); // 此行

或者在Spring配置中增加一行配置:
< bean  name ="memcachedClient2"
        class
="net.rubyeye.xmemcached.utils.XMemcachedClientFactoryBean"  destroy-method ="shutdown" >
   
   
<!-- 采用binary command  -->
   
< property  name ="commandFactory" >
           
< bean  class ="net.rubyeye.xmemcached.command.BinaryCommandFactory" ></ bean >

</ bean >

2. 支持与hibernate-memcached的集成。 Hibernate-memcached是可以将memcached作为hibernate二级缓存的开源项目,它默认采用的是Spymemcached,XMemcached 1.2.0开始提供对它的集成,具体的配置信息参考 这里。

3. 兼容JDK5。XMemcached的1.x版本都仅能在jdk6上使用,从1.2.0-RC1开始,XMemcached开始兼容jdk5。当时考虑只支持jdk6是由于nio的Epoll Selector实现是在jdk6上成为默认,而jdk5需要设置环境变量。不过XMemcached 1.2.0-RC1将自动帮你判断是否是linux平台,并且判断是否可以启用epoll,如果可以,那么将在linux平台采用EPollSelectorProvider,这一切对用户来说是透明的。(注意,jdk5的低版本在linux平台仍然是没有epoll实现的)。

4. 日志从common-logging迁移到slf4j。XMemcached现在必须的两个依赖包分别是 slf4j和 yanf4j(1.0-SNAPSHOT).

5.另一个关键性的改进是 允许设置连接池。众所周知,nio的client默认一般都是一个连接,传统的阻塞io采用连接池的方式提高效率。但是在典型的高并发场景下,nio的单连接也将遇到瓶颈,此时允许设置连接池将是一个可选的调优手段。XMemcached 1.2.0-RC1支持设置连接池,允许对同一个memcached节点建立多个连接,启用的代码如下:
MemcachedClient mc =.
mc.setConnectionPoolSize(2);

 默认的pool size是1。设置这一数值不一定能提高性能,请依据你的项目的测试结果为准。初步的测试表明只有在大并发下才有提升。设置连接池的一个不良后果就是,同一个memcached的连接之间的数据更新并非同步的,因此你的应用需要自己保证数据更新的原子性(采用CAS或者数据之间毫无关联)。

6、 简化构建,移除ant构建,简化maven构建,现在只采用maven构建了。借助于 wagon-svn这个扩展,可以将svn作为maven仓库,因此xmemcached的构建现在变的非常方便,下载源码后敲入mvn package即可。

7. 升级yanf4j到1.0-SNAPSHOT版本,此版本引入了SocketOption类,方便设置socket选项,并为引入aio做了重构。

8、从1.1.3和1.2.0-beta以来的bug fixed.


欢迎使用和建议。

下载地址:
http://code.google.com/p/xmemcached/downloads/list


你可能感兴趣的:(XMemcached发布1.2.0-RC1)