一、引言

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. 使用清华开源镜像安装tensorflow

    安装tensorflow时,如果使用直接安装速度相对较慢,采取清华大学的镜像会提高速度.GPU版本安装方法:pip install tensorflow-gpu==1.8 -i https://pyp ...

  2. Scala实现Try with resources自动关闭IO

    在处理数据库连接或者输入输出流等场景时,我们经常需要写一些非常繁琐又枯燥乏味的代码来关闭数据库连接或输入输出流. 例如数据库操作: def update(sql: String)(conn: Conn ...

  3. Python 爬虫——抖音App视频抓包

    APP抓包 前面我们了解了一些关于 Python 爬虫的知识,不过都是基于 PC 端浏览器网页中的内容进行爬取.现在手机 App 用的越来越多,而且很多也没有网页端,比如抖音就没有网页版,那么上面的视 ...

  4. CollapsingToolbarLayoutDemo【可折叠式标题栏,顺便带有CardView卡片式布局】

    版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 CollapsingToolBarLayout是一个作用于ToolBar基础之上的布局,它也是由Design Support库提供的 ...

  5. springboot~mybatis里localdatetime序列化问题

    问题起因 主要是使用mybatis作为ORM之后,返回的对象为Map,然后对于数据库的datetime,datestamp类型返回为时间戳而不是标准的时间,这个问题解决方案有两种,大叔分析一下: 在m ...

  6. 痞子衡嵌入式:飞思卡尔Kinetis系列MCU开发那些事 - 索引

    大家好,我是痞子衡,是正经搞技术的痞子.本系列痞子衡给大家介绍的是飞思卡尔Kinetis系列微控制器相关知识. 飞思卡尔半导体(现恩智浦半导体)于2010年开始推出的Kinetis系列昭示着ARM C ...

  7. 39.QT-Qtxlsx库使用

    之前参考博客https://blog.csdn.net/c3060911030/article/details/51560239下载Qtxlsx库,然后编译的时候,显示: error: invalid ...

  8. Poj1543

    Perfect Cubes Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 16522   Accepted: 8444 De ...

  9. Scope 功能的改进

    前段时间发表了一篇文章 面向对象的一小步:添加 ActiveRecord 的 Scope 功能 提到一种更加友好的方式做数据库查询.经小伙伴的建议,在满足同样条件下,可以有更为简洁的封装方法. 这需要 ...

  10. bootstrap实现表格

    基本实例样式 效果 代码 <!DOCTYPE html> <html lang="en"> <head> <meta charset=&q ...