我想將memcache對象的到期時間設置爲特定日期。特定日期的Memcache對象到期
cache.set(string, 1, 86400)
以上聲明允許我將其設置爲一天,但如果日期更改,它不會過期。我可以處理的一種方法是計算當天剩餘的秒數並將其作爲變量提供。
我想知道是否有更簡單/有效的方法來做到這一點。
我想將memcache對象的到期時間設置爲特定日期。特定日期的Memcache對象到期
cache.set(string, 1, 86400)
以上聲明允許我將其設置爲一天,但如果日期更改,它不會過期。我可以處理的一種方法是計算當天剩餘的秒數並將其作爲變量提供。
我想知道是否有更簡單/有效的方法來做到這一點。
這一天至少每天都會變化,不是嗎?客戶端或服務器必須指定哪一個與任何給定請求相關。對於客戶端應用程序而言,這通常是更好的任務。
請注意,您可以指定絕對時間戳,因爲您可以在整個一天(或至少一個小時)內重複使用該時間戳,因此可以更容易計算到期時間。
綜觀documentation,我們看到,期滿參數作爲說明:
可選的期滿時間,無論是從當前時間秒相對數(高達1個月),或絕對Unix時間戳時間。默認情況下,物品永不過期,但物品可能因內存壓力而被逐出。浮點值將四捨五入到最接近的整數。
所以基本上,如果你把在那裏數小於2592000,它被解釋爲一個相對時間。因此,數字86400將從現在的被解釋爲86400秒(一天),這是它被設置的時間。
看起來你打算使用比這個更大的數字來表示一個絕對時間。有一個variety獲取unix時間戳的方法。但很簡單,你可以這樣做:
time_tuple = (2013, 2, 15, 0, 0, 0,0,0,0)
timestamp = time.mktime(time_tuple)
cache.set(string, 1, timestamp);
你最初的想法是正確的。你可以找出現在的時間戳,以及你想要的日期的時間戳,並提供差異,這也是同樣的。
準確地說,我想指定絕對時間戳到午夜格林尼治標準時,而我在memcache中設置對象。我沒有找到相同的語法。感謝您分享。謝謝。 – satp