Couchbase权威指南(十五)

基本操作

couchbase基于文档ID,执行非常简单的文档存取模型。在存储信息时,不需要定义表或结构,不需要写复杂的查询去获取信息。

couchbase里的所有操作遵循下列规则:

  • 所有操作是原子性的

这意味着服务器里没有锁机制,不可能存在来自多个客户端的并发命令破坏了数据。然而,这也意味着如果多个客户端对同一文档ID执行set操作,只有最后一个操作有效。为了管理这种并发和竞争条件,可以使用CAS操作。这要求提供一个附加的校验值,在校验值不合的情况下,文档不会被更新。

  • 所有数据操作都要求key

所有对数据的操作,都要求提供一个key。不能执行全局操作,或者针对多个key的操作(multiple-get除外)。

  • 没有内部锁

在存储或更新数据时,系统并没有一个内部锁。操作要么完全成功,要么因为某种理由失败(例如,临时内存不足)。

不同的客户端语言执行core协议,从而与couchbase服务器通信:

  • 所有客户端执行core协议

对不同的语言和环境,尽管在结构和函数名字上有些不同,但它们都执行同样的核心操作协议。例如,所有实现里都有set()协议调用,尽管有些客户端把它叫做”store”.

  • 函数调用结构差异

因为不同的语言和环境的差异,对于core协议的函数调用结构也许不同。例如在java里,可变参数方法不可用,因而有多个同一函数的变体。在其他语言里,例如perl、python、ruby,hash是核心变量类型,经常被用来存储和返回信息。

  • 不同的语言提供额外的功能

某些客户端实现提供额外的函数调用和结构,这些是原生core协议所没有的。例如在java里,所有操作既可以是同步也可以是异步的,允许你在get或set操作时,继续处理其他信息。

  • 并非所有实现支持标签

标签在服务器里和数据一起存储,并非被所有语言的客户端支持。

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