Couchbase权威指南(十一)

客户端接口

有许多couchbase的客户端可用,它们归为2类,一类是smart clients,另一类是memcached兼容客户端。smart clients完全与集群进行通信,根据内置的集群配置和基于vBuckets的分布式信息,数据自动写往集群里的正确节点。smart clients与集群保持通信,确保在故障转移或者rebalancing时,客户端更新自己的配置,将数据写入到正确的节点。

如果使用非智能的memcached兼容的客户端,就必须使用一个位于客户端的Moxi组件。Moxi作为一个代理服务器存在,位于客户端连接和couchbase集群之间。除了让传统的memcached客户端可以写往couchbase集群,Moxi还提供了集群级的分布和接口。使用Moxi还让你在不改变任何已存在的memcached应用的前提下,获取couchbase的特有功能所带来的优势。

在couchbase服务器里,存储和获取信息的方式根据实际情况而不同。所有方法可以归类为CRUD这4类基本操作:Create(创建),Retrieve(获取),Update(更新),Delete(删除)。

创建

使用couchbase的客户端接口,根据文档ID将文档信息存储到数据库里。批量操作也可行,并且比多个单次操作更有效。

对于基本的存储、获取信息的操作,couchbase兼容memcached客户端协议。对于更高级的操作,你需要使用couchbase客户端库。

存储的值可以是任何二进制值,包括结构化和非结构化的串,序列化对象,或者原生的二进制数据例如图片或音频。

获取

为了获取数据,你必须先知道文档ID。也可以执行批量操作,同时获取多个文档,这比单次操作更有效。

更新

包括更新整个文档的操作,也包括追加数据到已存在记录的操作,或者递增和递减整数值。

删除

有个单一的删除操作,用来从数据库里删除整个文档。

各语言的库

couchbase官方支持下列语言和环境的smart clients库:

  • Java (http://www.couchbase.com/develop/java/current)
  • .NET (http://www.couchbase.com/develop/net/current)
  • PHP (http://www.couchbase.com/develop/php/current)
  • Ruby (http://www.couchbase.com/develop/ruby/current)
  • C [libcouchbase] (http://www.couchbase.com/develop/c/next)

在笔者写此书时,也有一个实验性的Python库可用(http://www.couchbase.com/develop/python/current)。Mark Nunberg还写了个Perl客户端Couchbase::Client,它基于C的libcouchbase库。你可以在CPAN上获取到这个库。

此条目发表在Common分类目录,贴了标签。将固定链接加入收藏夹。