我想在任何给定的时间获得“活”密钥的数量。现在根据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