【发布时间】:2012-03-13 18:06:00
【问题描述】:
我似乎记得在某处读到谷歌应用引擎会自动将非常频繁查询的结果缓存到内存中,以便更快地检索它们。
这对吗?
如果是这样,对这些查询的数据存储读取是否仍然收费?
【问题讨论】:
标签: python google-app-engine memcached bigtable
我似乎记得在某处读到谷歌应用引擎会自动将非常频繁查询的结果缓存到内存中,以便更快地检索它们。
这对吗?
如果是这样,对这些查询的数据存储读取是否仍然收费?
【问题讨论】:
标签: python google-app-engine memcached bigtable
如果您使用 Python 和新的 ndb API,它确实会自动缓存实体,因此如果您通过键获取实体,它将被缓存:
http://code.google.com/appengine/docs/python/ndb/cache.html
正如 cmets 所说,查询不会被缓存。 缓存的请求不会到达数据存储区,因此您可以节省读取数据。
如果您使用 Java 或其他 API 来访问数据存储区,那么不,没有缓存。
已编辑修正了我关于查询被缓存的错误。
【讨论】:
我认为应用引擎不会为您缓存任何内容。虽然它可能会在内部缓存一些东西一瞬间,但我认为你不应该依赖它。
我认为,对于从每个查询中读取的每个实体,您将按正常数量的读取操作付费。
【讨论】:
不,它没有。但是,根据您用于访问数据存储的框架,将使用 memcache。你是用java还是python开发?在 java 方面,Objectify 将自动缓存 GET,但不会缓存查询。请记住,python 和 java 中的 get 和 query 在性能和可缓存性方面存在很大差异。
您无需为 memcache 命中的数据存储读取付费。
【讨论】: