如何为我的servlet缓存内容?

时间:2012-06-20 17:41:03

标签: java spring google-app-engine caching servlets

我正在使用Spring 3.1在Google App Engine上运行一个Web服务servlet,因为我对这个游戏很新,我根本不知道应该如何缓存。在我的servlet的生命周期中,似乎有很多地方可以保存:

  1. 应用程序上下文。在这里定义bean可以让我轻松地将它们注入我的代码中。这似乎是最简单的解决方案,只是将我的豆子作为单身人士。
  2. Servlet上下文。为此,当我的servlet启动时,我可以通过抓取它的实例并执行setAttribute()来将东西放入ServletContext。
  3. 内存缓存。我还没有考虑过这个,但我想我会得到一个缓存实例,并像ServletContext一样将对象推入其中。
  4. 我很好奇的具体案例是创建用户帐户。我想保留所有用户ID的HashSet,以便我可以检查所请求的用户ID是否已被使用。

    除了上述具体情况,包括使用每种不同技术的情况都将受到赞赏。

1 个答案:

答案 0 :(得分:2)

在您的具体情况下,我建议您使用持久存储,例如数据存储区或云sql(您可以看到所有替代方案here)。

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

另请注意,AppEngine支持通过Users Service使用Google帐户或OpenId。