app引擎会自动缓存频繁查询吗?

Chr*_*row 3 python google-app-engine memcached bigtable

我似乎记得在某处读取谷歌应用程序引擎自动将非常频繁的查询结果缓存到内存中,以便更快地检索它们.

它是否正确?

如果是这样,这些查询的数据存储读取是否仍有费用?

dra*_*onx 5

如果您正在使用Python和新的ndb API,它会自动缓存实体,因此如果您按键获取实体,它将被缓存:

http://code.google.com/appengine/docs/python/ndb/cache.html

正如评论所说,查询不会被缓存.缓存的请求不会访问数据存储区,因此您可以在那里保存读取数据.

如果您使用Java或其他API来访问数据存储区,那么不,没有缓存.

编辑修复了关于缓存查询的错误.

  • 实际上,NDB缓存实体,但不缓存查询:"查询不会在任何缓存中查找值.但是,如果缓存策略如此(但永远不会向Memcache),查询结果将写回到上下文缓存中." (3认同)
  • 尼克说的是什么.Rick Mangi的回答是正确的.通过使用keys_only查询并将结果传递给get_multi(),您可以从NDB的缓存中获得一些好处; 但请参阅此处的讨论:http://code.google.com/p/appengine-ndb-experiment/issues/detail?id = 118. (2认同)