zoukankan      html  css  js  c++  java
  • memcache两种客户端比较

    1.memcached client for java

        客户端API:memcached client for java

        网址:http://www.whalin.com/memcached(我从 https://github.com/gwhalin/Memcached-Java-Client/downloads 下载的)

        最新版本:java_memcached-release_2.6.6.jar

        操作示例:

    package com.dxz.cache.memcachedclient;
    
    import com.danga.MemCached.MemCachedClient;
    import com.danga.MemCached.SockIOPool;
    
    public class TestMemcached {
        public static void main(String[] args) {
            /* 初始化SockIOPool,管理memcached的连接池 */
            String[] servers = { "192.168.8.28:11211" };
            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 < 3; 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));
            }
        }
    }

    执行结果:

    set( 0 ): true
    get( 0 ): Hello!
    set( 1 ): true
    get( 1 ): Hello!
    set( 2 ): true
    get( 2 ): Hello!

    2.spymemcached

        客户端API:spymemcached client

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

        最新版本:spymemcached-2.9.1.jar

        操作示例:用spymemcached将对象存入缓存及从缓存中取出

    package com.dxz.cache.spymemcached;
    
    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.8.28", 11211));
                Future<Boolean> b = null;
                /* 将key值,过期时间(秒)和要缓存的对象set到memcached中 */
                b = mc.set("abcd123", 900, "someObject");
                System.out.println("set():" + b);
    
                /* 按照key值从memcached中查找缓存,不存在则返回null */
                Object c = mc.get("abcd123");
                System.out.println("get():" + c);
                if (b.get().booleanValue() == true) {
                    mc.shutdown();
                }
            } catch (Exception ex) {
                ex.printStackTrace();
            }
        }
    }

     执行结果:

    2016-01-21 19:07:23.213 INFO net.spy.memcached.MemcachedConnection: Added {QA sa=/192.168.8.28:11211, #Rops=0, #Wops=0, #iq=0, topRop=null, topWop=null, toWrite=0, interested=0} to connect queue
    2016-01-21 19:07:23.219 INFO net.spy.memcached.MemcachedConnection: Connection state changed for sun.nio.ch.SelectionKeyImpl@4eb754b0
    set():net.spy.memcached.internal.OperationFuture@23ac5c8b
    get():someObject
    2016-01-21 19:07:23.253 INFO net.spy.memcached.MemcachedConnection: Shut down memcached client

    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.

  • 相关阅读:
    POJ 2752 Seek the Name, Seek the Fame
    POJ 2406 Power Strings
    KMP 算法总结
    SGU 275 To xor or not to xor
    hihocoder 1196 高斯消元.二
    hihoCoder 1195 高斯消元.一
    UvaLive 5026 Building Roads
    HDU 2196 computer
    Notions of Flow Networks and Flows
    C/C++代码中的笔误
  • 原文地址:https://www.cnblogs.com/duanxz/p/5149323.html
Copyright © 2011-2022 走看看