JAVA客户端调用memcached比较

  1.memcached client for Java

  客户端API:memcached client for java

  网址:http://www.whalin.com/memcached

  最新版本:java_memcached-release_2.0.1

  操作示例:

  Java代码

  

import com.danga.MemCached.*;  import org.apache.log4j.*;  public class TestMemcached {  public static void main(String[] args) {  /*初始化SockIOPool,管理memcached的连接池*/  String[] servers = { "192.168.1.20:12111" };  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 < 10; 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));  }  }  }


  2.spymemcached

  客户端API:spymemcached client

  网址:http://code.Google.com/p/spymemcached/

  最新版本:memcached-2.1.jar

  操作示例:用spymemcached将对象存入缓存

  Java代码

  

import java.net.InetSocketAddress;  import java.util.concurrent.Future;  import net.spy.memcached.MemcachedClient;  public class MClient {  public static void main(String[] args){  try{  /*建立MemcachedClient 实例,并指定memcached服务的IP地址和端口号*/  MemcachedClient mc = new MemcachedClient(new InetSocketAddress("192.168.1.20", 12111));  Future b = null;  /*将key值,过期时间(秒)和要缓存的对象set到memcached中*/  b = mc.set("neea:testDaF:ksIdno", 900, "someObject");  if(b.get().booleanValue()==true){  mc.shutdown();  }  }  catch(Exception ex){  ex.printStackTrace();  }  }  }


  用spymemcached从缓存中取得对象

  Java代码

  

import java.net.InetSocketAddress;  import java.util.concurrent.Future;  import net.spy.memcached.MemcachedClient;  public class MClient {  public static void main(String[] args){  try{  /*建立MemcachedClient 实例,并指定memcached服务的IP地址和端口号*/  MemcachedClient mc = new MemcachedClient(new InetSocketAddress("192.168.1.20", 12111));  /*按照key值从memcached中查找缓存,不存在则返回null */  Object b = mc.get("neea:testDaF:ksIdno ");  mc.shutdown();  }  catch(Exception ex){  ex.printStackTrace();  }  }  }


  3.两种API比较

  memcached client for java:较早推出的memcached JAVA客户端API,应用广泛,运行比较稳定。

  spymemcached:A simple, asynchronous, single-threaded memcached client written in java. 支持异步,单线程的memcached客户端,用到了java1.5版本的concurrent和nio,存取速度会高于前者,但是稳定性不好,测试中常报timeOut等相关异常。

  由于memcached client for java发布了新版本,性能上有所提高,并且运行稳定,所以建议使用memcached client for java.


 小编推荐:

 Java程序员从笨鸟到菜鸟之(七十四)细谈Spring(六)spring之AOP基本概念和配置详解

 解决JDK Error occurred during initialization of VM java/lang/NoClassDefFoundError:

 java io系列17之 System.out.println(

 javascript 动态添加数据到 HTML 页面

 用Java写一个日历小程序-思路


赞 (0) 评论 分享 ()