一、引言

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还有相当丰富的内容等着去深入学习。

Couchbase入门——环境搭建以及HelloWorld的更多相关文章

  1. Windows C#入门环境搭建

    Windows C#入门环境搭建 1. 安装Microsoft .NET Framework目录: C:\Windows\Microsoft.NET\Framework,查看已经安装的版本. 如果未安 ...

  2. ArcGIS API for Silverlight/ 开发入门 环境搭建

    Silverlight/ 开发入门 环境搭建1 Silverlight SDK下载ArcGIS API for Microsoft Silverlight/WPF ,需要注册一个ESRI Gloab ...

  3. Scala深入浅出实战经典---001-Scala开发环境搭建和HelloWorld解析

    001-Scala开发环境搭建和HelloWorld解析 Scala 函数式编程和面向对象结合的语言 函数式编程擅长数值计算 面向对象擅长大型工程和项目的组织以及团队的分工协作 Scala会是下一个伟 ...

  4. Android开发-环境搭建以及HelloWorld

    最近开始进行Android的开发,没有基础完全从0开始.   首先,知道Android开发的官方网站: http://developer.android.com/index.html 网站本身教程非常 ...

  5. 【Android开发】之Android环境搭建及HelloWorld

    原文链接:http://android.eoe.cn/topic/android_sdk Android开发之旅:环境搭建及HelloWorld Android开发之旅:环境搭建及HelloWorld ...

  6. Android最简单的实例 :环境搭建及HelloWorld

    Android开发之旅:环境搭建及HelloWorld 2010-04-12 00:45 by 吴秦, 883961 阅读, 140 评论, 收藏,  编辑 ——工欲善其事必先利其器 引言 本系列适合 ...

  7. Android开发使用控件入门--环境搭建

    Android开发使用控件入门--环境搭建 软件名称(,梦,,想.CAD  ,控件) 1. 环境搭建: 3 1.1. 安装Eclipse 3 1.2. 下载JDK 3 1.3. 下载Android S ...

  8. 57.NodeJS入门--环境搭建 IntelliJ IDEA

    转自:https://blog.csdn.net/wang19891106/article/details/51127133 NodeJS入门–环境搭建 IntelliJ IDEA 本人也刚开始学习N ...

  9. NodeJS入门--环境搭建 IntelliJ IDEA

    NodeJS入门–环境搭建 IntelliJ IDEA 本人也刚开始学习NodeJS,所以以此做个笔记,欢迎大家提出意见. 1.首先 下载安装NodeJS,下载安装IntelliJ IDEA 2.接下 ...

随机推荐

  1. Java三种方式实现栈和队列

    栈:LIFO(后进先出) 队列:FIFO(先进先出) 1.栈:LIFO(后进先出) 1.1.栈的顺序存储结构实现: /** * 基于数组实现的顺序栈 * @param <E> */ pub ...

  2. 当List<String> list =new ArrayList<String>(20); 他会扩容多少次

    当List<String> list =new ArrayList<String>(20); 他会扩容多少次?A 0       B 1 C 2 D 3答案是A: 因为这个集合 ...

  3. pandas的apply操作

    pandas的apply操作类似于Scala的udf一样方便,假设存在如下dataframe: id_part pred pred_class v_id 0 d [0.722817, 0.650064 ...

  4. 消除点击连接或者按钮或者执行onclick事件时出现的边框

    css中添加 *:not(input) { font-family: sans-serif; font-size-adjust: none; -webkit-user-select: none; -w ...

  5. Python基础(解压序列)

    解压序列: a,b=(1,2) # a,b=[1,2] print(a,b) #输出结果:1 2 #获取第一个值和最后一个值 a,*_,c=(1,2,3,4,5,6,7,8,9) print(a) p ...

  6. 网络层和arp协议

    1:arp协议功能:获取mac地址 ----------------------在同一个局域网:发送端mac  接收端mac(FF:FF:FF:FF:FF:FF:FF) 源IP  目标IP  数据 - ...

  7. Python 闭包小记

    闭包就是能够读取其他函数内部变量的函数.例如在javascript中,只有函数内部的子函数才能读取局部变量,所以闭包可以理解成“定义在一个函数内部的函数“.在本质上,闭包是将函数内部和函数外部连接起来 ...

  8. Netty源码 服务端的启动

    最近一直在看netty,看完之后就想做点笔记.可是实在是太忙了,挤了还要几个晚上终于挤出来了 上图是服务端的实例代码.大致的流程先梳理一遍. 首先会执行 用于创建两个线程组,boosGroup用于接受 ...

  9. Mybatis+mysql批量插入性能分析测试

    前言 今天在网上看到一篇文章(后文中的文章指的就是它) https://www.jianshu.com/p/cce617be9f9e 发现了一种有关于mybatis批量插入的新方法,而且看了文章发现我 ...

  10. 四种途径提高RabbitMQ传输消息数据的可靠性(一)

    前言 RabbitMQ虽然有对队列及消息等的一些持久化设置,但其实光光只是这一个是不能够保障数据的可靠性的,下面我们提出这样的质疑: (1)RabbitMQ生产者是不知道自己发布的消息是否已经正确达到 ...