Hello Membase
你可能很好奇,最简单的与Membase通信的Java程序会是什么样,你应该怎么用Java命名行工具编译并且运行它。如果有兴趣请看下面的清单1。
清单1: Main.javaimport java.io.IOException;
import java.util.concurrent.TimeUnit;
import net.spy.memcached.AddrUtil;
import net.spy.memcached.MemcachedClient;
public class Main {
public static void main(String[] args) {
MemcachedClient client;
try {
client = new MemcachedClient(AddrUtil.getAddresses(args[0]));
} catch (IOException e) {
e.printStackTrace();
return;
}
Object spoon = client.get("spoon");
if (spoon == null) {
System.out.println("There is no spoon.");
client.set("spoon", 10, "Hello World!");
} else {
System.out.println((String)spoon);
}
client.waitForQueues(1, TimeUnit.MINUTES);
System.exit(0);
}
}
将清单1中的代码放入一个名为Main.java的文件中。
将下载的memcached-2.6.jar文件放到同一个目录。
输入下面的命令:$ javac -cp memcached-2.6.jar Main.java
$ java -cp .;memcached-2.6.jar Main 10.0.0.33:11211
当然,需要使用你自己的Memcache服务器IP地址。www.linuxidc.com如果你在Linux或者MacOS上操作,将第二个命令行中的分号换成冒号。程序将会产生下面的输出:2011-05-12 22:11:56.281 INFO net.spy.memcached.MemcachedConnection: Added {QA sa=/10.0.0.33:11211,
#Rops=0, #Wops=0, #iq=0,
topRop=null, topWop=null, toWrite=0, interested=0} to connect queue
2011-05-12 22:11:56.284 INFO net.spy.memcached.MemcachedConnection: Connection state changed for sun.nio.ch.SelectionKeyImpl
@15dfd77
There is no spoon.
这个输出的大部分内容都是客户端库产生的日志,告诉你客户端内部进行到哪一步,可以帮助你分析问题。这儿说的是一个Membase连接已经添加,并且连接状态已经改变。然后代码显示键spoon 没有在Membase中存在。
在10秒钟之内再次运行这个程序将会产生如下输出:2011-05-12 22:14:15.800 INFO net.spy.memcached.MemcachedConnection: Added {QA sa=/10.0.0.33:11211, #Rops=0, #Wops=0, #iq=0,
topRop=null, topWop=null, toWrite=0, interested=0} to connect queue
2011-05-12 22:14:15.803 INFO net.spy.memcached.MemcachedConnection: Connection state changed for sun.nio.ch.SelectionKeyImpl
@15dfd77
Hello World!
你再一次看到日志信息,根据这次的指示,键 spoon 的值“Hello World”在Membase中被找到了。恭喜,你已经在一个更大的世界中迈出了一小步。