2015-06-29 6 views
1

(Это довольно простой вопрос - один, который можно ответить попробовать - но так как документы не явно об этом, я решил задокументировать его здесь)Сброс/Обновление TTL для счетчика Couchbase

Когда я установил новый счетчик couchbase TTL'd (например, с помощью incr() в python), - и затем повторно-incr() счетчик с еще одним значением TT12 TTT, будет ли сброшен 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 секунд?

питона библиотека документы: http://docs.couchbase.com/sdk-api/couchbase-python-client-1.2.3/api/couchbase.html

ответ

0

Нет, второй incr Операция не обновление TTL. Если вы хотите изменить TTL, используйте команду touch.

Обратите внимание, что это соответствует поведению исходного протокола memcached - см., Например, How does incr work with expiry times?

1

Так что ответ нет: второй вызов Incr() не обновляет TTL, но будет успешно увеличиваем счетчик.

Скорее путано, это НЕ верно для API-интерфейса .set() API (или upsert()). например, следующий код

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

приведет с не-TTL'd документ - 2-й вызов, чтобы установить() удаляет TTL.

Смежные вопросы