Python 重置/更新Couchbase计数器的TTL

Python 重置/更新Couchbase计数器的TTL,python,couchbase,Python,Couchbase,(这是一个非常简单的问题——可以通过尝试来回答——但由于文档没有明确说明,我想我应该在这里记录下来) 当我设置一个新的TTL'd couchbase计数器(例如,在python中使用incr())并使用另一个TTL值重新设置该计数器时,键的TTL会被重置为新值吗 以下是另一种提问方式: 如果我运行以下代码: cb.incr(key='mykey',amount=1,initial=1,ttl=10) //10 seconds TTL cb.incr(key='mykey',amount=1,in

(这是一个非常简单的问题——可以通过尝试来回答——但由于文档没有明确说明,我想我应该在这里记录下来)

当我设置一个新的TTL'd couchbase计数器(例如,在python中使用incr())并使用另一个TTL值重新设置该计数器时,键的TTL会被重置为新值吗

以下是另一种提问方式:

如果我运行以下代码:

cb.incr(key='mykey',amount=1,initial=1,ttl=10) //10 seconds TTL
cb.incr(key='mykey',amount=1,initial=1,ttl=100) //will this update the TTL?
密钥会在10秒或100秒后过期吗


python库文档:

因此答案是否定的:对incr()的第二次调用不会更新TTL,但会成功地增加计数器

令人困惑的是,对于.set()API(或upsert()API)来说,情况并非如此。例如,下面的代码

print cb.set('hello',{'hi':'there'},ttl=1)
print cb.set('hello',{'hi':'there'})

将产生一个非TTL文档-第二次调用set()将删除TTL。

否,第二次
增量操作不会更新TTL。如果确实要更改TTL,请使用
触摸
命令

注意:这与原始memcached协议的行为相匹配-参见示例