【问题标题】:How to get the revision number of couchbase document?如何获取 couchbase 文档的修订号?
【发布时间】:2014-07-11 09:20:53
【问题描述】:

我将 .NET api 用于 couchbase。只是想知道如何获取文档的修订号?

干杯

【问题讨论】:

  • 为什么要能够得到修订号?此数字仅在内部用于 xdcr 冲突解决。
  • 使用并发
  • 为什么不使用 CAS?每次修改文档时都会更新。

标签: couchbase


【解决方案1】:

正如 Jeff 上面提到的,您想要做的是使用 cas 值。此值存在于 Couchbase 和 memcached 中,专门用于从不同线程更新同一文档。 cas 只是一个随机数,每次更新文档时都会更改。基本上你想要做的是使用 get() API 获取 cas。这将为您返回请求的键的当前值以及 cas 值。在您的应用程序中,您可以修改您的文档并调用 set() API,但请确保包含 cas 值。当服务器接收到一个带有 cas 值的集合时,它只会在 cas 值与服务器当前拥有的匹配时更新文档。如果 set() 操作失败,那么您知道文档已更改,您可以再次获取文档(并记住新的 cas 值),进行更改,然后再次尝试 set() 文档。

http://docs.couchbase.com/couchbase-devguide-2.5/#check-and-set-cas

【讨论】:

    【解决方案2】:

    最好的解决方案(不求助于一些甚至可能不存在的低级非推荐方法)只是将修订存储为值的一部分,确定吗?这也将允许在视图中读取它,这可以提供一些实用程序(例如,当另一个完成时通知某些等待进程/文档)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-06-29
      • 1970-01-01
      • 2010-09-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多