将Couchbase Server 2.2与Java SDK 1.4.4配合使用。
MemcachedClient::add(String key, int exp, Object o)
状态继承的CouchbaseClient
文档:“将对象添加到缓存(使用默认代码转换器),如果它已经不存在”。
我没有发现任何关于此操作的原子的提及。 异步调用是否会保留添加密钥的初始值?或者这是一个get的非原子包装器,后跟一个set?
感谢。
答案 0 :(得分:3)
add
(与大多数Couchbase操作一样)是原子的 - 集群将(原子地)执行检查以查看指定的密钥是否存在,并且仅当它不将它设置为给定值时
如果密钥确实存在,您将收到错误(EEXISTS
或Java本机等效项)。