Java开发中的Memcache原理及实现

Memcached 目前三种Java客户端程序
1、官方提供的基于传统阻塞io由Greg Whalin维护的客户端
2、Dustin Sallings实现的基于java nio的Spymemcached
3、XMemcached

操作方法

  • 01

    1. 三种API比较 1)      memcached client for java 较早推出的memcached JAVA客户端API,应用广泛,运行比较稳定。 2)      spymemcached A simple, asynchronous, single-threaded memcached client written in java. 支持异步,单线程的memcached客户端,用到了java1.5版本的concurrent和nio,存取速度会高于前者,但是稳定性不好,测试中常 报timeOut等相关异常。 3)      xmemcached XMemcached同样是基于java nio的客户端,java nio相比于传统阻塞io模型来说,有效率高(特别在高并发下)和资源耗费相对较少的优点。传统阻塞IO为了提高效率,需要创建一定数量的连接形成连接 池,而nio仅需要一个连接即可(当然,nio也是可以做池化处理),相对来说减少了线程创建和切换的开销,这一点在高并发下特别明显。因此 XMemcached与Spymemcached在性能都非常优秀,在某些方面(存储的数据比较小的情况下)Xmemcached比 Spymemcached的表现更为优秀,具体可以看这个Java Memcached Clients Benchmark。

  • 02

    由于memcached client for java发布了新版本,性能上有所提高,并且运行稳定,所以建议使用memcached client for java。 XMemcached也使用得比较广泛,而且有较详细的中文API文档,具有如下特点:高性 能、支持完整的协议、支持客户端分布、允许设置节点权重、动态增删节点、支持JMX、与Spring框架和Hibernate-memcached的集 成、客户端连接池、可扩展性好等。

  • 03

    1)   memcached client for java 从前面介绍的Java环境的Memcached客户端程序项目网址里,下载最新版的客户端程 序包:java_memcached-release_2.5.1.zip,解压后,文件夹里找到java_memcached- release_2.5.1.jar,这个就是客户端的JAR包。将此JAR包添加到项目的构建路径里,则项目中,就可以使用Memcached了。 示例代码如下: package temp; import com.danga.MemCached.*; import org.apache.log4j.*; public class CacheTest { public static void main(String[] args) { /** * 初始化SockIOPool,管理memcached的连接池 * */ String[] servers = { "10.11.15.222:10000" }; SockIOPool pool = SockIOPool.getInstance(); pool.setServers(servers); pool.setFailover(true); pool.setInitConn(10); pool.setMinConn(5); pool.setMaxConn(250); pool.setMaintSleep(30); pool.setNagle(false); pool.setSocketTO(3000); pool.setAliveCheck(true); pool.initialize(); /** * 建立MemcachedClient实例 * */ MemCachedClient memCachedClient = new MemCachedClient(); for (int i = 0; i < 1000; i++) { /** * 将对象加入到memcached缓存 * */ boolean success = memCachedClient.set("" + i, "Hello!"); /** * 从memcached缓存中按key值取对象 * */ String result = (String) memCachedClient.get("" + i); System.out.println(String.format("set( %d ): %s", i, success)); System.out.println(String.format("get( %d ): %s", i, result)); } } }

(0)

相关推荐

  • Java开发中的break的三种用法

    在Java开发中,有那么几个关键词非常常用,如:return.continue.break:其实它们本身含义不大,英文解释一句话的事情,但是当它们依附循环或者switch语句时,就变得复杂而有意思了. ...

  • java开发过程中遇到的问题及解决办法

    现将开发过程中遇到的各种问题总结如下,常见异常有空指针.越界.内存溢出.类型转换异常等. 操作方法 01 问题一:索引越界异常.当访问某个序列的索引值小于0或大于等于序列大小时,抛出该异常, java ...

  • Eclipse Java开发插件FindBugs安装及配置

    FindBugs是java开发中的静态分析工具,可以帮助开发人员找出代码中已有的缺陷,通常会将 FindBugs 集成到编译过程中. 安装FindBugs 01 打开Eclispe 应用市场,搜索Fi ...

  • java开发工具eclipse中@author怎么改

    java开发工具eclipse中@author怎么改,开发的时候为了注明版权信息.用eclipse开发工具默认的是系统用户,那么怎么修改呢 操作方法 01 备注一个类的开发者,默认是系统用户,很多时候 ...

  • MAC os x 系统java开发环境搭建教程

    关于java开发环境搭建教程的资料在网上已经有很多资料了,但大部分都是关开WINDOES系统的,mac系统的不多,更没有一篇完整的开发环境搭建教程. 教程总分为两部分,第一部分:查看是否已安装JDK. ...

  • mac系统下安装Java开发环境(一)——JDK安装

    MAC对于现在的程序开发人员来说,已经是很大一部分程序员的生产力工具.因此熟练掌握各种开发环境的配置非常重要,下面我们就来学习一下在MAC系统中安装JDK配置java开发环境. JDK的下载 01 打 ...

  • 卸载Java开发工具JDK

    在Windows7系统下,卸载Java开发工具JDK.这个可以通过电脑上的控制面板卸载,也可以通过卸载软件卸载,主要讲通过控制面板卸载.这两种卸载JDK方式,可以根据情况分析两种方法的区别.下面利用一 ...

  • Java开发:[1]JDK和JRE的区别

    想做Java开发的,首先要做的就是Java环境的搭建, 而 Java环境根据需要又分为: 开发环境和 运行环境.开发环境需要安装JDK, 运行环境需要安装JRE(如果安装了JDK,则无需再安装JRE) ...

  • 搭建Java开发环境

    在进行java开发之前,我们最重要的步骤就是如何获取JDK版本及正确的安装.配置java环境.只有正确的安装了java运行环境,才能继续java的学习和实践. 操作方法 01 自己在网上下载JDK,本 ...