阅读更多

10顶
1踩

企业架构

原创新闻 XMemcached发布1.2.0-RC1,支持binary协议

2009-09-09 10:10 by 资深记者 dennis_zane 评论(3) 有5646人浏览

  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现在必须的两个依赖包分别是slf4jyanf4j(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.升级yanf4j1.0-SNAPSHOT版本,此版本引入了SocketOption类,方便设置socket选项,并为引入aio做了重构。

 

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

 

 

欢迎使用和建议。

 

下载地址:

http://code.google.com/p/xmemcached/downloads/list

 

 

10
1
评论 共 3 条 请登录后发表评论
3 楼 myreligion 2009-09-11 17:42
slf4j到底强在哪里? 为什么那么多人都开始用了。。。
2 楼 whaosoft 2009-09-10 11:06
做缓存的吧,没用过
1 楼 cloud21 2009-09-10 09:17
GOOD ,有时间看看。

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • Velocity之vm页面中保存时弹框"正在保存",然后关闭弹框,刷新列表

    js代码 addDemand: function () { try { $.jBox("iframe:" + contextPath + "/demand/demand_toAddDemand" + webtype, { title: "添加需求", width: 650, ...

  • velocity学习-----问题来了

    1:问题描述:我创建了一个页面index.vm ,用到iframe 代码如下: #set($cms4j_root_path=&quot;/CMS4J/templates/default/admin&quot;) 后台管理 powerby www.javacoo.org ...

  • velocity中文乱码最终解决方案

     前言:最近在用velocity开发个东西,但其vm页面的输出总是会乱码,在网上找了很多资料,还是不能解决,最终在一篇网上的文章的启发下,http://www.javaeye.com/post/540300,终于搞定了这个问题。好,

  • velocity模板乱码的问题

    velocity出现乱码总结:  一.首先要确保开发工具(如eclipse),WEB服务器(如tomcat),数据库 (如 mysql)采用的是同一种编码。  1.1 MyElcipse的配置: 对着工程项目按右键,点属性--&amp;gt;资源,在text ...

  • spring-velocity-jsp

    1,使用annotation 声明控制器   2.velocity引擎 ...class="org.springframework.web.servlet.view.velocity..../WEB-INF/vm/ UTF-8 UTF-8 3.velocity解析器(order越小,先匹配,如果找不

  • VeloCity velocity 乱码问题 解决总结

    VeloCity velocity 乱码问题 解决总结 velocity 本文出处 www.chinacsharp.net 作者 keyboardsun mail:keyBoardsun@163.com如果转载,请标明出处,作者 以下为网上遇到的问题:问题1:===========================...

  • velocity模板使用建议

    velocity模板使用建议 复杂页面前端模块化的方式: 方式一:iframe 方式二:velocity模板(#parse) 方式一,优点很多,也有缺点,例如页面之间传递参数等; 方式二,页面之间的调用,传参更容易,页面...

  • velocity 模板引擎

    freemarker等的同类产品,可脱离web环境使用。 在web项目中与springMVC搭配,可参考&lt;spring mvc中的视图框架&gt; 它是一个apache的项目,地址为:...!-- https://mvnrep...

  • spring、ztree和velocity整合开发

    2019独角兽企业重金招聘Python工程师标准&gt;&gt;&gt; 界面效果如下:实现一个...createCase.vm 两个任意的文件。能显示内容就行 转载于:https://my.oschina.net/greengirl/blog/313023

  • I don't know what to say 事件的 NPM 包中奖名单,有你在用的吗?

    事件详情请看 GitHub Issue 及 justjavac 发布的文章 有人统计出目前引用了 event-stream 的 3900 多个包,如下(名次越靠前使用的人越多): ps-tree nodemon flatmap-stream pstree.remy npm-run-all gulp-inject ...

  • ANDORID~支持的设备

    下表列出了 Google Play 支持的设备。此列表是按制造商名称的首字母排序的。您也可以在此页面中查找自己的设备(PC:Ctrl + F,苹果机:Command + F)。 如果您在使用 Google Play 网站或 Google Play 商店应用时...

  • 第7章 Spring Boot集成模板引擎

    --&lt;td&gt;&lt;a th:href="${'/product/edit/' + product.id}"&gt;Edit&lt;/a&gt;&lt;/td&gt;--&gt; &lt;th:block th:include="common/footer :: footer"&gt;&lt;/th:block&gt; Step3.include common模板说明 common/header.html &lt;!...

  • UltraEdit 语法高亮 wordfile for Velocity / NVelocity

    修改自:ftp://www.ultraedit.com/wf/velocity.txt删除了一些废弃的Html标签,删除原来带大部分属性,把大写改成小写。/L13"Velocity" Nocase Noquote HTML_LANG Line Comment = ## Block Comment On = #* Block ...

  • WEB应用安全设计思想

     比如velocity,在渲染html的时候,程序员可以写vm模板,一些静态写死的内容就是代码,而通过变量,经过渲染才最终展现的内容则称之为数据。一个典型的例子如下: href = "$URI/test-$!{test.UserId}.htm" ...

  • sitemesh的使用

    sitemesh的使用: Sitemesh是由一个基于Web页面布局、装饰以及与现存Web应用整合的框架。它能帮助我们在由大量页面构成的项目中创建一致的页面布局和外观,如一致的导航条,一致的...甚至于它能将HTML文件象includ

  • 使用MyBatisPlus的逆向工程自动生成Mapper接口,xml文件,service接口,service实现以及controller并整合Spring框架完成单表CUID和分页操作

    -- 配置oracle主键Sequence, 其他类型数据库,请配置相应的类型--&gt; &lt; bean id = " keyGenerator " class = " com.baomidou.mybatisplus.incrementer.OracleKeyGenerator " /&gt; &lt;!-- 配置mybatis 扫描...

  • 狂神说笔记——SpringBoot操作数据库22-5

    insert&gt; &lt;delete id="deleteArticleById" parameterType="int"&gt; delete from article where id = #{id} delete&gt; mapper&gt; 既然已经提供了 myBatis 的映射配置文件,自然要告诉 spring boot 这些文件的位置 # 指定...

  • Java2HTML改造手记(4)

    Java2HTML改造手记(4)  原来这是一个判断当前参数的方法:if(O02.length == 0 || O06(new String[] {    "help", "h", "?", "/?"}))        {            System.out.println(O07.O08);            return false;   

  • Java2HTML改造手记(1)

    Java2Html(http://www.java2html.com/)是一个非常好用的工具,它可以直接将您的java源代码生成HTML页面,而且结构组织的就象javadoc组织的一样好,并且支持Ant Task扩展,给广大的编程爱好者一个非常方便实用的功能.笔者就非常喜欢使用ant结合javadoc/java2html等直接生成javadoc和java html文件并发布到服务器上.各位可以去我

  • Java2HTML改造手记(6)

    Java2HTML改造手记(6)  Buildjava2html方法最后调用了O01055方法,看来这个方法是最终生成html页面的方法了.既然如此,那么我们就把这个方法中出现的所有write方法中的参数加上”.getBytes(encoding)”,而这个encoding在构造方法中已经用用户指定的编码赋值了.修改过的是这样的:    public void O01055

Global site tag (gtag.js) - Google Analytics