Membase和Java入门


介绍

现在你已经安装了Membase并且可能已经创建了Membase服务器集群,现在就可以安装客户端库 spymemcached, 并且开始存储数据了。

下面是本文的纲要:

  1. 下载Java Membase客户端库,spymemcached.

  2. 创建一个功能层,并且将Membase客户端库设置为引用库(referenced library).

  3. 写一个简单的程序演示连接到Membase并且存储数据。

  4. 展示一些简单程序中没有涉及的API方法。

下载Membase客户端库

Couchbase下载客户端库。这是一个你可以用在你的Java环境中的jar文件。

Hello Membase

你可能很好奇,最简单的与Membase通信的Java程序会是什么样,你应该怎么用Java命名行工具编译并且运行它。如果有兴趣请看下面的清单1。

清单1: Main.java

import 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. 将清单1中的代码放入一个名为Main.java的文件中。

  2. 将下载的memcached-2.6.jar文件放到同一个目录。

  3. 输入下面的命令:

    $ javac -cp memcached-2.6.jar Main.java
    $ java -cp .;memcached-2.6.jar Main 10.0.0.33:11211

当然,需要使用你自己的Memcache服务器IP地址。www.bkjia.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中被找到了。恭喜,你已经在一个更大的世界中迈出了一小步。

  • 1
  • 2
  • 3
  • 下一页

相关内容