Python 重置/更新Couchbase计数器的TTL
(这是一个非常简单的问题——可以通过尝试来回答——但由于文档没有明确说明,我想我应该在这里记录下来) 当我设置一个新的TTL'd couchbase计数器(例如,在python中使用incr())并使用另一个TTL值重新设置该计数器时,键的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
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协议的行为相匹配-参见示例