【问题标题】:How does incr work with expiry times?incr 如何处理到期时间?
【发布时间】:2010-12-25 19:54:46
【问题描述】:

在memcached(appengine api实现)中,过期如何与incr()交互? incr() 没有时间参数,但是如果我用另一个调用添加键会发生什么 而不是使用 initial_value 参数,像这样:

memcache.add('testcounter', 0, time=60*90) 
newcnt = memcache.incr('testcounter') 

testcounter 还会在 90 分钟后过期吗?到时候我是否会再次调用它?

【问题讨论】:

    标签: python google-app-engine memcached


    【解决方案1】:

    在 GAE 的 memcache overview 中,他们说:

    “应用程序可以提供存储值时的过期时间,可以是 相对于添加值时的秒数,也可以是未来的绝对 Unix 纪元时间(a从 1970 年 1 月 1 日午夜开始的秒数)。该值将在此时间之前被驱逐,尽管它可能因其他原因被驱逐。 它没有提到修改。

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

    【讨论】:

      【解决方案2】:

      过期时间不受incr影响

      无论添加多少次,该对象都将在添加后 90 秒内从缓存中过期。

      (当然,它可能会提前到期)

      【讨论】:

      • 我很想 +1,但这是否记录在某处?
      猜你喜欢
      • 2012-09-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-20
      • 2017-03-10
      • 2014-05-04
      • 1970-01-01
      相关资源
      最近更新 更多