客户端接口
有许多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上获取到这个库。