JAVA客户端调用memcached

1. memcached client for java客户端API:memcached client for java

引入jar包:java-memcached-2.6.2.jar

package com.pcitc.memcached;

import com.danga.MemCached.*;

public class TestMemcached {
    public static void main(String[] args) {
        /* 初始化SockIOPool,管理memcached的连接池 */
        String[] servers = { "192.168.1.111: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 < 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

引入jar包:spymemcached-2.10.3.jar

package com.pcitc.memcached;

import java.net.InetSocketAddress;
import java.util.concurrent.Future;

import net.spy.memcached.MemcachedClient;

public class MClient {

    public static void main(String[] args) {
        setValue();
        getValue();
    }

    // 用spymemcached将对象存入缓存
    public static void setValue() {
        try {
            /* 建立MemcachedClient 实例,并指定memcached服务的IP地址和端口号 */
            MemcachedClient mc = new MemcachedClient(new InetSocketAddress(
                    "192.168.1.111", 11211));
            Future<Boolean> b = null;
            /* 将key值,过期时间(秒)和要缓存的对象set到memcached中 */
            b = mc.set("neead", 900, "someObject");
            if (b.get().booleanValue() == true) {
                mc.shutdown();
            }
        } catch (Exception ex) {
            ex.printStackTrace();
        }
    }

    // 用spymemcached从缓存中取得对象
    public static void getValue() {
        try {
            /* 建立MemcachedClient 实例,并指定memcached服务的IP地址和端口号 */
            MemcachedClient mc = new MemcachedClient(new InetSocketAddress(
                    "192.168.1.111", 11211));
            /* 按照key值从memcached中查找缓存,不存在则返回null */
            Object b = mc.get("neead");
            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。

时间: 2024-10-09 17:01:36

JAVA客户端调用memcached的相关文章

转载——Java与WCF交互(一):Java客户端调用WCF服务

最近开始了解WCF,写了个最简单的Helloworld,想通过java客户端实现通信.没想到以我的基础,居然花了整整两天(当然是工作以外的时间,呵呵),整个过程大费周折,特写下此文,以供有需要的朋友参考: 第一步:生成WCF服务 新建WCF解决方案,分别添加三个项目,HelloTimeService(类库),HelloTimehost(控制台程序),HelloTimeClient(控制台程序),项目结构如图:各个项目的主要代码:service: Host: Client: 编译通过后,测试Hos

Java与WCF交互(一):Java客户端调用WCF服务

最近开始了解WCF,写了个最简单的Helloworld,想通过java客户端实现通信.没想到以我的基础,居然花了整整两天(当然是工作以外的时间,呵呵),整个过程大费周折,特写下此文,以供有需要的朋友参考: 第一步:生成WCF服务 新建WCF解决方案,分别添加三个项目,HelloTimeService(类库),HelloTimehost(控制台程序),HelloTimeClient(控制台程序),项目结构如图:各个项目的主要代码:service: Host: Client: 编译通过后,测试Hos

使用java客户端调用redis

Redis支持很多编程语言的客户端,有C.C#.C++.Clojure.Common Lisp.Erlang.Go.Lua.Objective-C.PHP.Ruby.Scala,甚至更时髦的Node.js,当然,更少不了Java的客户端支持.Redis官方列出的Java客户端也有少,有Jedis.JRedis.JDBC-Redis.RJC等,当然,Jedis是Redis官方首选的Java客户端开发包. 下面我们简单对Jedis的入门作简单的介绍. 首先,加入Jedis的依赖包.Jedis依赖包下

初识Kafka----------Centos上单机部署、服务启动、JAVA客户端调用

作为Apach下一个优秀的开源消息队列框架,Kafka已经成为很多互联网厂商日志采集处理的第一选择.后面在实际应用场景中可能会应用到,因此就先了解了一下.经过两个晚上的努力,总算是能够基本使用. 操作系统:虚拟机Centos 6.5 1.下载Kafka安装文件,首先进入官网,找到最新的稳定版本     wget http://mirrors.hust.edu.cn/apache/kafka/0.10.2.0/kafka_2.12-0.10.2.0.tgz 2.解压并拷贝到 需要的目录下,我的设定

java客户端调用restful接口

在这个例子中,我们将看到如何使用java.net包实用工具,创建一个访问REST服务RESTful的客户端.当然这不是创建一个RESTful客户端最简单的方法,因为你必须自己读取服务器端的响应,以及Json和Java对象的转换. 请求Get public class JavaNetURLRESTFulClient { private static final String targetURL = "http://localhost:8080/JerseyJSONExample/rest/json

如何在Java客户端调用RESTful服务

在这个例子中,我们将看到如何使用java.net包实用工具,创建一个访问REST服务RESTful的客户端.当然这不是创建一个RESTful客户端最简单的方法,因为你必须自己读取服务器端的响应,以及Json和Java对象的转换. 请求Get public class JavaNetURLRESTFulClient { private static final String targetURL = "http://localhost:8080/JerseyJSONExample/rest/json

java客户端调用c#的webservice服务

此处使用到了CXF框架,可以使用以下坐标从maven仓库中获取相关jar包: 1 <dependency> 2 <groupId>org.apache.cxf</groupId> 3 <artifactId>apache-cxf</artifactId> 4 <version>3.0.3</version> 5 <type>pom</type> 6 </dependency> 自定义一个

转载——Java与WCF交互(二):WCF客户端调用Java Web Service

在上篇< Java与WCF交互(一):Java客户端调用WCF服务>中,我介绍了自己如何使用axis2生成java客户端的悲惨经历.有同学问起使用什么协议,经初步验证,发现只有wsHttpBinding可行,而NetTcpBinding不可行,具体原因待查.昨晚回去重新测试WCF客户端调用Java Web Service,并将过程公布如下: 其实本不需要做web service,只是原来公开的经典的Web service像(http://soapinterop.java.sun.com/rou

转载——Java与WCF交互(一)补充:用WSImport生成WSDL的Java客户端代码

在<Java与WCF交互(一):Java客户端调用WCF服务>一文中,我描述了用axis2的一个Eclipse控件生成WCF的Java客户端代理类,后来有朋友建议用Xfire.CXF,一直没有尝试,今天有朋友指出JDK6可以用java自带的一个WSImport工具,试了下,果然很爽,这是一个exe文件,位于%JAVA_HOME%\bin下,它的官方使用说明,见:http://download-llnw.oracle.com/javase/6/docs/technotes/tools/share