当前位置:  开发笔记 > 编程语言 > 正文

NoSQL中的CAS是什么以及如何使用它?

如何解决《NoSQL中的CAS是什么以及如何使用它?》经验,为你挑选了1个好方法。

Couchbase上的写操作接受参数cas(创建和设置).此外,任何非数据获取查询的返回结果对象都具有cas属性.我用Google搜索了一下,找不到一篇关于它的好概念性文章.

谁能告诉我何时使用CAS以及如何操作?使用CAS的常见工作流程应该是什么?

我的猜测是我们需要为第一次写入操作获取CAS,然后将其与下一次写入一起传递.我们还需要使用结果的CAS更新它.如果我错了,请纠正我.



1> DaveR..:

CAS实际上代表检查和设置,是一种乐观锁定的方法.CAS值与每个文档相关联,每当文档发生更改时都会更新 - 有点像修订ID.目的是不是悲观地锁定文档(以及相关的锁定开销),而是只读取它的CAS值,然后仅在CAS匹配时执行写入.

一般用例是:

    阅读现有文档,并获取它当前的CAS(get_with_cas)

    假设没有其他人修改过该文档(因此导致CAS更改),为该文档准备一个新值.

    使用check_and_set操作编写文档,提供(1)中的CAS值.

如果文档在(1)和(3)之间不变,则步骤3将仅成功(执行写入) - 即,其他用户在此期间没有对其进行修改.通常如果(3)失败,您将重试整个序列(get_with_cas,修改check_and_set).

在Concurrent Document Mutations下的Couchbase开发人员指南中有更详细的检查和设置说明.

推荐阅读
pan2502851807
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有