Memcached初探

Arch下安装Memcached

sudo pacman -S memcached

安装完之后,默认情况下是没有运行的,所以可以使用memcached -h来查看帮助文档,之后运行下面这个命令来运行。

memcached -p 11211 -m 64m -d

监听端口11211,使用内存64M,-d表示是以一个守护进程的形式后台运行。

运行了服务端的Memcached之后,使用telnet进行连接。使用如下命令。

telnet 127.0.0.1 11211

显示如下

Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.

另输入quit退出。

Memcached简单使用

set命令和get命令

set foo 0 900 9
memcached
STORED
get foo
VALUE foo 0 9
memcached
END

上面就是典型的setget命令。其中使用set命令的时候,参数功能如下所示:

  • foo:表示key值,用于查找。
  • 0 :可以用来存储除了键值对外的额外信息。
  • 900:表示可以存放900秒,0表示永远。
  • 9:表示字节数。
  • memcached:表示value值,一直再第二行。
  • STORED:表示存储成功。当存储失败的时候,显示ERROR

同理可以猜测到使用get命令的时候,参数的作用。

delete命令

delete foo
DELETE

删除一个存在的key。

state命令

state

Memcached stats 命令用于返回统计信息例如 PID(进程号)、版本号、连接数等。

Java客户端连接Memcached

下面的代码中我用的是下面这个Maven包。

com.google.code.maven-play-plugin.spy
memcached
2.4.2

下面是一个简单的例子,一看就懂如何简单地使用API了。

import net.spy.memcached.MemcachedClient;

import java.io.IOException;
import java.net.InetSocketAddress;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.Future;

/**
 * Created by jack on 16-8-1.
 */
public class TestMemcached {
    public static void main(String[] args) throws IOException, ExecutionException, InterruptedException {
        MemcachedClient memcachedClient = new MemcachedClient(new InetSocketAddress("127.0.0.1",11211));
        System.out.println("连接成功!");
        Future fo = memcachedClient.set("foo",900,"Free Education");
        System.out.println("set status:" + fo.get());
        System.out.println(memcachedClient.get("foo"));
        memcachedClient.shutdown();
    }
}

运行结果:

连接成功!
2016-08-01 21:58:03.220 INFO net.spy.memcached.MemcachedConnection:  Added {QA sa=/127.0.0.1:11211, #Rops=0, #Wops=0, #iq=0, topRop=null, topWop=null, toWrite=0, interested=0} to connect queue
2016-08-01 21:58:03.251 INFO net.spy.memcached.MemcachedConnection:  Connection state changed for sun.nio.ch.SelectionKeyImpl@22d8cfe0
set status:true
Free Education
2016-08-01 21:58:03.279 INFO net.spy.memcached.MemcachedClient:  Shut down memcached client

运行了之后,发现除了打印的信息外,还有自己打印的提示信息,还是可以的。

后记

简单地对Memcached的安装,命令行的使用,Java客户端的使用有了一个了解,其实还有很多本质问题没有搞明白,比如为什么使用这个缓存就可以提升性能,有怎么样的历史和原理,比如如何在框架之下合理地使用缓存。下一篇讲。

参考

Memcached 教程

你可能感兴趣的:(Memcached初探)