couchbase的安装
在本文中,我只想展示Couchbase入门的难易程度,并说明如何“查询”数据。 本教程的基本步骤是:
- 安装Couchbase
- 建立资料
- 查询数据
如果我有时间展示如何从您的应用程序中使用Couchbase(从Java开始),我将尝试发布更多文章。
先决条件:
- 再简单不过了: 此处提供Couchbase 2.0。 (当前在Developer Preview中)
Couchbase 101:插入和查询数据 安装
我在Mac OS X上使用的是Couchbase,所以让我描述一下这种环境下的安装。 如果您使用其他操作系统,请查看Couchbase文档。
Couchbase的安装非常快(非常快!):
- 下载Mac OS X Zip文件。
- 双击下载的Zip安装文件以提取内容。 这将创建一个文件Couchbase.app应用程序。
- 将Couchbase.app拖放到您选择的安装文件夹中,例如系统Applications文件夹。
启动和配置Couchbase服务器
要启动Couchbase服务器,只需双击Couchbase服务器。 服务器启动后,将在OS X菜单中添加一个新图标,以指示服务器已启动并正在运行。 现在,您可以配置Couchbase实例,为此,您只需要访问管理控制台即可,该控制台位于以下位置http://127.0.0.1:8091 (如果需要,请更改IP地址),或者只需进入Couchbase菜单并单击“打开管理控制台”条目。
- 欢迎屏幕:单击设置
- 设置磁盘和群集配置。 在我的实例上,我保留磁盘存储的默认位置。 只需为您的实例配置内存使用的大小,例如800Mb。 到目前为止,我们只有一个实例,因此无需加入集群。
- 选择生成样本数据。 了解更多有关数据和视图的知识将很有趣。
- 创建默认存储桶(仅用于测试)。 Couchbase使用存储桶来存储数据。 可以将其与RDBMS世界中的“数据库”进行比较。
- 配置更新通知以在发布新版本的Couchbase时发出警报
- 使用管理员用户名和密码在最后一步配置服务器
- 完成此操作后,您将自动重定向到管理控制台。
就是这个! 您已经准备好使用Couchbase服务器。
Couchbase具有许多有趣的功能,尤其是围绕可伸缩性和弹性,但是在本文中,我们不作重点介绍:
- 插入一些数据并查询它们
插入资料
Couchbase有许多种方法可以使用不同的客户端库(例如Java,Python,PHP,Ruby,.Net,C)来从您喜欢的编程语言处理数据。现在,让我们使用管理控制台来创建和查询数据。
Couchbase可以存储任何类型的数据,但是当您需要使用结构来处理某些数据时,最好的方法是使用JSON文档。 因此,让我们使用控制台并创建文档。
要在数据库中创建新文档,请单击“数据桶”选项卡。 如果您已安装示例,则将看到2个存储桶:default和gameim-sample。
让我们在默认存储桶中创建一个新文档:
- 单击文档按钮
- 点击创建文档
- 由于每个文档都必须具有一个ID,例如100。
- Couchbase保存文档并添加一些元数据,例如_rev,$ flags,到期
- 在描述员工的文档中添加新属性:姓名,部门和薪水,然后保存。 您只需要使用值更新JSON对象
{
“ _id”:“ 100”, “名称”:“托马斯”, “部门”:“销售”, “薪水”:5000 }
与其他一些雇员重复该操作:
200,Jason,Technology,5500
300,Mayla,Technology,7000
400,Nisha,Marketing,9500
500,Randy,Technology,6000
501,Ritu,Accounting,5400
现在,您的数据库中有一个雇员列表。 那很容易不是吗? 现在让我们查询它们。
直接从其ID 查询数据 访问文档
首先,您可以使用简单的HTTP请求(使用其ID)快速访问文档。 例如,要访问ID为300的Mayla,只需输入以下URL:
- http://127.0.0.1:8092/default/300
在此URL中,您有:
- 8092是用于访问数据的Couch API REST端口(其中8091是管理控制台的端口)
- 默认是存储文档的存储桶
- 300是文件编号
使用查询搜索数据
因此,我们已经了解了如何访问一个文档。 但是,如果我需要的是:
- “给我技术部门的所有员工”
为了实现这种查询,有必要创建视图。 Couchbase服务器使用这些视图来索引和搜索您的数据。 视图是用JavaScript编写的Map函数,它将生成与您放入Map函数中的逻辑兼容的键值列表。 请注意,此键值现在已按键索引并排序。 在查询数据时,这一点很重要。
因此,让我们从管理控制台中创建一个新视图:
- 单击“视图”选项卡(确保您位于默认存储桶中)
- 点击“创建开发视图”
- 输入文档和视图名称:
- 文件名称:_design / dev_dept
- 视图名称:部门
- 点击保存
- 单击您的视图进行编辑
由于我们需要提供属于技术部门的员工列表,因此我们需要创建一个将部门用作键的视图,因此map函数如下所示:
function (doc) { emit(doc.dept, null); }
保存视图
此函数将文档取入并创建一个列表,其中包含“部门”作为键,而null为值。 在我们的案例中,价值本身并不那么重要。 一个简单的规则是:不要在值中放入太多数据,因为最后Couchbase服务器使用此映射创建了索引。 将会看到Couchbase允许开发人员在访问视图时轻松获取文档信息。
单击“显示结果”按钮,结果将如下所示:
{"total_rows":6,"rows":[ {"id":"501","key":"Accounting","value":null}, {"id":"400","key":"Marketing","value":null}, {"id":"100","key":"Sales","value":null}, {"id":"200","key":"Technology","value":null}, {"id":"300","key":"Technology","value":null}, {"id":"500","key":"Technology","value":null} ] }
正如我们在前面所看到的,可以使用单个URL访问文档,对于视图也是如此。 例如,您可以使用以下URL访问我们刚刚创建的视图:
现在可以使用查询参数通过键参数对结果进行过滤,该参数使用JSON String输入:
现在该查询的结果是:
{"total_rows":6,"rows":[ {"id":"200","key":"Technology","value":null}, {"id":"300","key":"Technology","value":null}, {"id":"500","key":"Technology","value":null} ] }
访问视图时,可以使用许多其他参数来控制大小,超时等等。 其中一个非常有趣的是include_docs,它要求Couchbase在结果中包含文档的全部内容。 因此,如果您致电:
结果是:
{"total_rows":6,"rows":[ {"id":"200","key":"Technology","value":null,"doc": {"_id":"200","_rev":"1-1de6e6751608eada0000003200000000","$flags":0,"$expiration":0,"name":"Jason","dept":"Technology","salary":5500}}, {"id":"300","key":"Technology","value":null,"doc":{"_id":"300","_rev":"1-f3e44cee742bfae10000003200000000","$flags":0,"$expiration":0,"name":"Mayla","dept":"Technology","salary":7000}}, {"id":"500","key":"Technology","value":null,"doc": {"_id":"500","_rev":"1-05780359aac8f3790000003200000000","$flags":0,"$expiration":0,"name":"Randy","dept":"Technology","salary":6000}} ] }
现在让我们创建一个稍微复杂的视图来满足以下业务需求:“给我所有薪水在5000到6000之间的员工”
因此,现在您知道您需要使用以下Map函数创建一个以薪金为关键的新视图:
function (doc) { emit(doc.salary, null); }
Couchbase在创建/更新索引时会自动对键进行排序,因此,让我们在调用视图时使用startkey和endkey参数。 因此,让我们从以下URL调用视图:
结果是:
{"total_rows":6,"rows":[ {"id":"100","key":5000,"value":null,"doc":{"_id":"100","_rev":"1-0f33580d780014060000002e00000000","$flags":0,"$expiration":0,"name":"Thomas","dept":"Sales","salary":5000}}, {"id":"501","key":5400,"value":null,"doc":{"_id":"501","_rev":"1-b1fe5bc79637720e0000003100000000","$flags":0,"$expiration":0,"name":"Ritu","dept":"Accounting","salary":5400}}, {"id":"200","key":5500,"value":null,"doc":{"_id":"200","_rev":"1-1de6e6751608eada0000003200000000","$flags":0,"$expiration":0,"name":"Jason","dept":"Technology","salary":5500}}, {"id":"500","key":6000,"value":null,"doc":{"_id":"500","_rev":"1-05780359aac8f3790000003200000000","$flags":0,"$expiration":0,"name":"Randy","dept":"Technology","salary":6000}} ] }
结论
在这篇简短的文章中,您将学习如何:
- 安装Couchbase
- 使用管理控制台创建数据
- 用视图查询数据
当我有更多时间时,我将写另一篇文章,用Java和其他语言做同样的事情。
参考: Couchbase 101:在Tug的Blog博客上从JCG合作伙伴 Tugdual Grall 安装,存储和查询数据 。
翻译自: https://www.javacodegeeks.com/2012/07/couchbase-101-install-store-and-query.html
couchbase的安装