2009-12-11 51 views
4

在memcached(appengine api實現)中,expiration如何與incr()交互?沒有對增量()時間參數,但如果我添加鍵值與另一個呼叫 而不是使用initial_value PARAM,像這樣會發生什麼:incr如何使用到期時間?

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

將在90分鐘內testcounter仍然會過期嗎?不管我在那個時候是否再次打電話?

回答

4

在GAE的memcache overview他們說:

「的應用程序可以提供一個值被存儲時的期滿時間,無論是作爲數秒相對於值的加入時間爲,或者作爲將來的絕對Unix紀元時間(距離1970年1月1日午夜的秒數)。該值將在不遲於此時間被驅逐,儘管它可能被驅逐出於其他原因。「 它沒有提到修改。

如果你看看google.appengine.api.memcache.init.py內存緩存的代碼,你會看到,無論是在增量或_incrdecr存在於set_expiration_time函數的調用

1

到期時間不受incr的影響。

不管您添加次數多少次,該對象在緩存中的添加時間不會晚於90秒。

(並且,當然,它可以較早過期)

+0

我喜歡+1,但這是記錄在某處? – JasonSmith 2009-12-12 13:31:07

相關問題