一、引言

       NoSQL(Not Only SQL),火了很久了,一直没空研究。最近手上一个项目对Cache有一定的要求,借此机会对NoSQL入门一下。支持NoSQL的数据库系统有很多,  比如Redis,MongoDB等。每种系统都有自己的优缺点,根据实际情况我们选用了Couchbase作为切入点学习。这里有几种数据库的比较:

       Couchbase,是MemBase与couchDb这两个NoSQL数据库的合并的产物,是一个分布式的面向文档的NoSQL数据库管理系统,即拥有CouchDB的简单和可靠以及Memcached的高性能。(网上搜来的)。本文主要介绍CouchBase的环境搭建,并提供一个java控制台程序的helloworld例子(其实官网上都有的)。官网学习地址:http://docs.couchbase.com/

 

二、准备工作

(1)下载Couchbase Server 2.5.1 http://www.couchbase.com/couchbase-server/overview

(2)安装Couchbase2.5.1,并作相应配置;可参考:

(3)下载Couchbase Client Libraries: http://www.couchbase.com/communities/java/getting-started

 

三、环境搭建

(1)安装

          下载安装包后,直接双击安装

(2)配置

        安装完成之后,会自动打开地址: http://localhost:8091/index.html 点击setup,根据提示进行配置,需要注意的是设置好内存大小、Sample Buckets勾选beer-sample,设置好用户名密码其他都默认。最终出现如下页面:

Couchbase Lite缺点 couchbase安装_Couchbase Lite缺点

这样Couchbase Server就装好了。

四、HelloWorld

(1)在eclipse中新建一个java project——HelloCouchBase

(2)新建一个lib,添加下面列出的CouchBase 客户端相应jar包,并添加到build path:

  • couchbase-client-1.4.3.jar
  • spymemcached-2.11.4.jar
  • commons-codec-1.5.jar
  • httpcore-4.3.jar
  • netty-3.5.5.Final.jar
  • httpcore-nio-4.3.jar
  • jettison-1.1.jar

如果是maven项目可以直接pom.xml中添加Dependency:

<dependency>
    <groupId>com.couchbase.client</groupId>
    <artifactId>couchbase-client</artifactId>
    <version>1.4.3</version>
</dependency>

(3)在src目录创建——com.wzhang.app.HelloCouchBase

(4)添加如下代码:



public static void main(String[] args) {
		ArrayList<URI> nodes = new ArrayList<URI>();
		nodes.add(URI.create("http://127.0.0.1:8091/pools"));
		CouchbaseClient client = null;
	    try {
	      client = new CouchbaseClient(nodes, "default", "");
	    } catch (Exception e) {
	      System.err.println("Error connecting to Couchbase: " + e.getMessage());
	      System.exit(1);
	    }

	    // 添加一条记录,key-hello,value-couchbase
	    try {
			client.set("hello", "couchbase!").get();
		} catch (Exception e) {
			System.out.println(e.getStackTrace());
		}

	    // 取出刚刚我们存进去的key是hello的值
	    String result = (String) client.get("hello");
	    System.out.println(result);

	    // 关闭client
	    client.shutdown();
	}



对上述源码的几点描述:

  • Connect ,CouchbaseClient对象通过nodes参数实现多服务器(集群cluster)
  • get/set,set用于创建和更新,get用与读取查询数据库中的值
  • DisConnect,通过调用shutdown方法来关闭服务器实例,不传参数的话,服务器会等所有的处理都结束后才会关闭,当让你可以传入给定的时间作为参数,如client.shutdown(1,TimeUnit.SECONDS);

(5)运行结果:

Couchbase Lite缺点 couchbase安装_jar_02

(6)在web console的DataBuckets查看刚刚写入的值:

Couchbase Lite缺点 couchbase安装_memcached_03

点击button “Document”:

Couchbase Lite缺点 couchbase安装_memcached_04

 

五、源码以及相关下载

源码地址:HelloCouchBase.rar

Couchbase Server + Couchbase client library 百度网盘地址:http://pan.baidu.com/s/1kTr7S7l

学习心得:利用 Couchbase做一个helloworld还算是挺容易的,当然Couchbase还有相当丰富的内容等着去深入学习。