我想在任何給定的時間獲得「活」密鑰的數量。現在根據API文檔getItemCount()是爲了返回這個。Memcache getItemCount()計算過期的密鑰?
但事實並非如此。過期的密鑰不會減少getItemCount()的值。爲什麼是這樣?我如何準確計算所有尚未過期的「活動」或「活着」密鑰?
這是我的put代碼; syncCache.put(uid,cachedUID,Expiration.byDeltaSeconds(3),SetPolicy.SET_ALWAYS);
現在應該在3秒後過期。它會使它們過期,但getItemCount()不反映鍵的真實數量。
更新: 看來memcache可能不是我應該使用的,所以這裏是我正在嘗試做的。
我希望編寫一個適用於桌面應用程序的「用戶在線」功能的Google-app引擎服務器/應用程序。桌面應用程序嚮應用程序發出一個具有唯一ID的http請求作爲參數。該應用程序將此UID與時間戳一起存儲。這是每3分鐘一次。
每隔5分鐘,任何時間戳超出5分鐘窗口的條目都將被刪除。然後你計算你有多少條目,這就是有多少用戶「在線」。
過期的功能看起來很完美,因此我甚至不需要擔心時間戳或清除過期的條目。
getItemCount在將項目放入緩存之前立即顯示什麼?該項目是否肯定被添加? –
getItemCount增量很好,並且在創建新密鑰時正確顯示。但是,如果我理解正確,密鑰過期時它應該遞減? – JasonF