您的位置:首页 > 编程语言 > Python开发

python aerospike client 实现CAS更新操作

2015-12-15 10:14 836 查看
有需求是对aerospike的数据先取出来,修改后再写入aerospike,这个时候就需要实现aerospike的CAS(Compare and Set/Swap)操作。Google以后发现利用Generation policy可以实现。

先记录读取数据时返回的
meta
信息,然后
put()
的时候比较当时的meta信息与读数据时的是否一致,一致时才写入,否则会报错。

代码:

bin_name = ['bin1', 'bin2']
(key, meta, bins) = client.select(key, bin_name)
# processing bins
process_bins(bins)

policy = {
"exists": aerospike.POLICY_EXISTS_UPDATE,
"gen": aerospike.POLICY_GEN_EQ
}
meta = {"gen": meta['gen']}
client.put(key, bins, meta=meta, policy=policy)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  python aerospike cas