incr如何处理到期时间?

时间:2009-12-11 20:29:07

标签: python google-app-engine memcached

在memcached(appengine api实现)中,expiration如何与incr()交互? incr()没有时间参数,但如果我用另一个调用添加密钥会发生什么 而不是使用initial_value参数,如下所示:

memcache.add('testcounter', 0, time=60*90) 
newcnt = memcache.incr('testcounter') 
测试计数器会在90分钟后到期吗?我是否在那段时间再次打电话给你?

2 个答案:

答案 0 :(得分:4)

在GAE的memcache overview中,他们说:

“应用程序可以在存储值时提供到期时间,相对于添加值时的秒数 ,或者作为未来的绝对Unix纪元时间(a从1970年1月1日午夜起的秒数。)该值将在不迟于此时被驱逐,但可能因其他原因被驱逐。“ 它没有提到修改。

如果你查看google.appengine.api.memcache.init.py中的memcache代码,你会发现在incr或_incrdecr中都没有调用set_expiration_time函数

答案 1 :(得分:1)

到期时间不受incr。

的影响

该对象将在添加后不迟于90秒从缓存中过期,无论您输入的次数如何。

(当然,它可能会更快到期)