0

我正在使用 Spring 3.1 开发在 Google App Engine 上运行的 Web 服务 servlet,由于我对这个游戏很陌生,我根本不知道我应该如何缓存东西。在 servlet 的生命周期内,我似乎可以在很多地方放置要维护的东西:

  1. 应用程序上下文。在这里定义 bean 可以让我轻松地将它们注入到我的代码中。这似乎是最简单的解决方案,只需将我的 bean 范围设置为单例。
  2. Servlet 上下文。为此,当我的 servlet 启动时,我可以通过抓取它的实例并将其放入 ServletContext 中,然后执行setAttribute().
  3. 内存缓存。我还没有研究这么多,但我想我会得到一个缓存实例,然后像 ServletContext 一样将一个对象推入其中。

我很好奇的具体案例是创建用户帐户。我想保留所有用户 ID 的 HashSet,以便我可以检查请求的用户 ID 是否已在使用中。

除了上面的具体情况,包括使用每种不同技术的情况,将不胜感激。

4

1 回答 1

2

在您的特定情况下,我建议您使用持久存储,例如数据存储或云 sql(您可以在此处查看所有替代方案)。

Memcache 不是一个选项,因为您无法控制存储了多少元素。并且任何应用程序上下文也不是解决方案,因为实例实际上在不同的数据中心被多次加载和重新加载。

另请注意,AppEngine 通过Users Service提供对使用 Google Accounts 或 OpenId 的支持。

于 2012-06-20T17:52:21.353 回答