1

我需要在 Google App Engine (Python 2.7) 上读取一个 5Mb 的文件并经常使用它。

在 GAE 中读取文件并不难:Read a file on App Engine with Python?

困难的部分是将它存储在某个地方,以便我可以尽可能快地经常访问它。它是 5MB,因此超过了 1MB 数据存储项目的限制。

我考虑使用 Blobstore,但我担心它不够快。读取 Blobstore 是否比读取文件更快?

我正在考虑将整个文件放入 memcache 中。是否可以?内存缓存是否足以存储 5MB 的文件?

就像在计算机上一样,我需要将此文件放在内存而不是硬盘中。

有什么建议么?

非常感谢!

4

1 回答 1

2

如果你的文件没有改变,那么你可以简单地将它放在你的项目目录中,并将它作为一个静态文件

现在开始提问:

  1. Blobstore 将足够快,因为 GAE 上的所有请求(blobstore 或用户代码)都通过透明缓存Cache-control您可以简单地在 blobstore 响应上设置适当的标头以将其缓存。

  2. Memcache最大存储值为 1Mb。此外,memcache 中的数据可以随时消失,因此无论如何您都需要将数据存储在永久存储中。此外,我怀疑它会更快,因为您的前端实例必须从 Memcache 获取数据然后提供它,而 Blobstore 服务的工作方式有点不同(通过拦截响应和在正文中插入数据)。

  3. 恕我直言,如果通过透明缓存提供数据,则最快。

此外,如果您想提供图像,那么您可能需要使用图像服务,因为它似乎比Blobstore 更快

于 2012-08-08T09:34:49.140 回答