一千萬個為什麽

搜索

在memcache中存儲值的最大長度(秒)是多少


Google App Engine內存緩存文檔聲明 memcache.set()time 參數是“可選的到期時間,從當前時間(最多1個月)的相對秒數,或絕對值Unix紀元時間。“

所以我嘗試設置一個30天的值,根據谷歌 a>是2 592 000秒。

但是,我高度懷疑這個值太高,因為設置了值( memcache.set()返回值 True ),但是 memcache。在總是返回 None 之後的get()。將此值降低為

1 728 000秒,工作正常/預期。

我想,一旦超過最高值, time 參數將被解釋為絕對的Unix紀元時間。這意味著2 592 000秒被解釋為“星期六,1970年1月31日00:00:00 GMT”,這顯然是過去的日期......

那麽您可以輸入的最高值將被解釋為將來的幾秒鐘?

編輯:在本地開發服務器上,2 592 000秒工作正常,但不在生產服務器上。我想兩臺服務器對這些值有不同的解釋。

最佳答案

您鏈接的Google文檔非常不精確;實際的 memcached文檔更具體,說這個數字可能是超過 2,592,000(30天秒)。所以從理論上講,這應該有效,除非實施問題。 (該聲明在PHP 其內存緩存內容的文檔中得到了回應。)所以根據memcached文檔,你的第一個值應該有效。

我不認為2,591,999的作品?谷歌文檔確實說“最多一個月”,如果你假設一個月內30天(不是一個有效的假設),最多 2,592,000(例如,但是不包括)。這與memcached文檔不一致,但也許存在實現差異或其他問題。

轉載註明原文: 在memcache中存儲值的最大長度(秒)是多少

猜你喜歡