我想在任何给定时间获取“活动”键的数量。现在根据 API 文档 getItemCount() 意味着返回这个。
然而事实并非如此。过期键不会减少 getItemCount() 的值。为什么是这样?如何准确计算所有未过期的“活动”或“活动”密钥?
这是我的放置代码;syncCache.put(uid, cachedUID, Expiration.byDeltaSeconds(3), SetPolicy.SET_ALWAYS);
现在应该在 3 秒后过期密钥。它使它们过期,但 getItemCount() 不反映键的真实计数。
更新:似乎 memcache 可能不是我应该使用的,所以这就是我想要做的。
我希望编写一个 google-app 引擎服务器/应用程序,作为桌面应用程序的“在线用户”功能。桌面应用程序使用唯一 ID 作为参数向应用程序发出 http 请求。应用程序将此 UID 与时间戳一起存储。这是每 3 分钟完成一次。
每 5 分钟删除时间戳超出 5 分钟窗口的任何条目。然后你计算你有多少条目,这就是有多少用户“在线”。
过期功能似乎很完美,因为那时我什至不需要担心时间戳或清除过期条目。