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客户端调用memcached的比较

相关文章:

你感兴趣的文章:

标签云: