python aerospike client 实现CAS更新操作

来源:互联网 发布:破解qq悄悄话的软件 编辑:程序博客网 时间:2024/05/22 18:56

有需求是对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 binsprocess_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)
0 0
原创粉丝点击