【问题标题】:What is the maximum length in seconds to store a value in memcache在内存缓存中存储值的最大长度(以秒为单位)
【发布时间】:2011-02-17 02:42:54
【问题描述】:

Google App Engine memcache documentation 声明 memcache.set()time 参数是“可选的过期时间,可以是距当前时间的相对秒数(最多 1 个月),也可以是绝对的 Unix 纪元时间。”

所以我尝试设置一个 30 天的值,according to Google 是 2 592 000 秒。

但是,我高度怀疑这个值太高了,因为该值是设置的(memcache.set() 返回值True),但一个memcache.get() 之后总是返回None。将此值减小到 1 728 000 seconds 就可以正常工作/符合预期。

我猜想一旦传递了最大值,time 参数就会被解释为绝对的 Unix 纪元时间。这意味着 2 592 000 秒被解释为“星期六,1970 年 1 月 31 日 00:00:00 GMT”,这显然是过去的日期......

那么你可以输入的最高值是多少,它将被解释为未来的秒数?

编辑:在本地开发服务器上,2 592 000 秒工作正常,但在生产服务器上却不行。我想两台服务器对值的解释不同。

【问题讨论】:

  • 由于您在开发服务器和产品中的行为不同,能否请您在问题跟踪器中提交一个关于此效果的错误?

标签: google-app-engine memcached


【解决方案1】:

您链接的 Google 文档非常不精确;实际的memcached documentation 更具体,表示该数字可能不会超过 2,592,000(30 天秒)。所以从理论上讲,这应该是可行的,除非有实施问题。 (该声明在 PHP documentation for its memcache stuff 中得到了回应。)因此,根据 memcached 文档,您的第一个值应该有效。

我不认为有 2,591,999 个作品? Google 文档确实说“最多一个月”,如果您假设一个月有 30 天(不是一个有效的假设),则 最多 2,592,000(例如,但是不包括)。这与 memcached 文档不一致,但可能存在实现差异或其他原因。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-06-18
    • 2011-01-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多