一、引言
NoSQL(Not Only SQL),火了很久了,一直沒空研究。最近手上一個項目對Cache有一定的要求,借此機會對NoSQL入門一下。支持NoSQL的數據庫系統有很多, 比如Redis,MongoDB等。每種系統都有自己的優缺點,根據實際情況我們選用了Couchbase作為切入點學習。這里有幾種數據庫的比較:http://www.csdn.net/article/2013-04-15/2814886-nosql-benchmark
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,並作相應配置;可參考:http://blog.csdn.net/qq415734794/article/details/7865826
(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 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)運行結果:
(6)在web console的DataBuckets查看剛剛寫入的值:
點擊button “Document”:
五、源碼以及相關下載
源碼地址:HelloCouchBase.rar
Couchbase Server + Couchbase client library 百度網盤地址:http://pan.baidu.com/s/1kTr7S7l
學習心得:利用 Couchbase做一個helloworld還算是挺容易的,當然Couchbase還有相當豐富的內容等着去深入學習。