Memcached java linux下测试

参考:Centos6.5下安装Memcached完整示例

首先去memcached官网下载并安装Memcached

下载安装包:memcached-1.x.x.tar.gz

tar -zxvf memcached-1.x.x.tar.gz

cd memcached-1.x.x

./configure && make && make test && sudo make install(这个步骤执行make test的时候提示有200多个test case,但是只执行了100多个,然后就出错了。。。,后来直接跳过这一步就好了。。。)

安装完了之后,按照官网的说明,使用telnet去测试下,如果telnet没有安装的话,执行下面步骤安装:

yum install telnet-server 

yum install telnet 

然后编辑vi /etc/xinetd.d/telnet,将里面的disable=yes 改为 no

重启服务 service xinetd restart 即可。

然后在memcached目录下启动服务:memcached -d start -u username

首先用telnet测试下:(default port is 11211)

telnet localhost 11211

就可以进入memcached黑窗口

add key1 0 60 5(回车)

abcde(回车)

这样就插入了数据,key是key1, 有效期60秒, 长度是5个字符,value是abcde

add的时候,如果key是key1的数据已经存在,则会失败(提示:NOT_STORED)

get key1(回车)

查询key为key的数据

set key1 0 60 3

abc

更新key为key1的数据,其他跟add一样,不过set如果发现没有key为key1的数据,就会插入数据,相当于add

replace也是更新,跟set不同的是,如果key对应的数据不存在,则不会插入数据,会提示 NOT_STORED,成功会提示STORED

delete key1

删除key为key1的数据。

下面是使用java的测试:(使用memcached-java-client)

下载需要的jar:

maven方式:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>com.tch.test</groupId>
  <artifactId>memcached</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>jar</packaging>

  <name>memcached</name>
  <url>http://maven.apache.org</url>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>

  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>com.whalin</groupId>
      <artifactId>Memcached-Java-Client</artifactId>
      <version>3.0.2</version>
    </dependency>
    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-log4j12</artifactId>
      <version>1.7.2</version>
    </dependency>
  </dependencies>
</project>

https://github.com/gwhalin/Memcached-Java-Client/downloads

共四个jar:commons-pool  java_memcached-release  slf4j-api  slf4j-simple

然后写测试类:

import java.util.Date;

import com.whalin.MemCached.MemCachedClient;
import com.whalin.MemCached.SockIOPool;

public class MemCached {
    protected static MemCachedClient mcc = new MemCachedClient();

    protected static MemCached memCached = new MemCached();

    static {
        String[] servers = { "localhost:11211" };
        Integer[] weights = { 3 };

        SockIOPool pool = SockIOPool.getInstance();

        pool.setServers(servers);
        pool.setWeights(weights);

        pool.setInitConn(5);
        pool.setMinConn(5);
        pool.setMaxConn(250);
        pool.setMaxIdle(1000 * 60 * 60 * 6);

        pool.setMaintSleep(30);

        pool.setNagle(false);
        pool.setSocketTO(3000);
        pool.setSocketConnectTO(0);

        pool.initialize();
    }

    protected MemCached() {

    }

    public static MemCached getInstance() {
        return memCached;
    }

    public boolean add(String key, Object value) {
        return mcc.add(key, value);
    }

    public boolean add(String key, Object value, Date expiry) {
        return mcc.add(key, value, expiry);
    }

    public boolean replace(String key, Object value) {
        return mcc.replace(key, value);
    }

    public boolean replace(String key, Object value, Date expiry) {
        return mcc.replace(key, value, expiry);
    }

    public boolean delete(String key) {
        return mcc.delete(key);
    }

    public Object get(String key) {
        return mcc.get(key);
    }

    public static void main(String[] args) {
        System.out.println("begin getInstance ....");
        MemCached cache = MemCached.getInstance();
        cache.add("key1", 18);
        System.out.println("finish getInstance ....");
        System.out.println("key1 get value : " + cache.get("key1"));
    }
}

然后把jar包以及测试类传到linux上面(把jar包都放到lib文件夹下

编译:

javac -classpath ./lib/*:$CLASSPATH MemCached.java

执行:

java -classpath ./lib/*:$CLASSPATH MemCached

就可以看到结果啦。。。

猜你喜欢

转载自dreamoftch.iteye.com/blog/2212477
今日推荐