0

我们有一个 Web 应用程序需要存储大约 200MB 的数据,这些数据将以只读方式在用户请求中访问。数据当前存储在数据库中。我们想把它放在内存中以加快读取速度。解决这个问题的最佳方法是什么?我们是否应该使用某种将在请求之间共享的静态数据结构?我们是否应该有一个单独的进程来初始化内存中的数据并通过 IPC 与请求进行通信?或者有什么我想念的吗?memcached 会帮助解决这样的问题吗?我不知道这是否有区别,但该应用程序是 groovy/grails 和 java 与 apache 上的 postgres 后端的混合。

编辑:一旦加载数据将不需要任何更新。它在 Web 应用程序的生命周期内保持不变。

4

1 回答 1

1

如果您在 postgres 数据库中只有 200MB 的数据,那么您可以有一个初始化阶段(或更新数据时的稍后同步阶段)将所有数据作为 Java POJO 读入内存。您的 Web 应用程序可以使用这些 POJO 来处理传入的 HTTP 请求。除非您发现无法在一台服务器的内存空间中容纳所有内容,否则不需要 memcached。

于 2013-10-28T07:50:43.427 回答