谷歌ndb和memcache

时间:2015-01-06 14:51:38

标签: python google-app-engine google-cloud-datastore google-data-api

我正在开发一个使用Python ndb数据存储区API的Google应用引擎应用。 由于我正在尝试优化应用程序,因此我想知道缓存数据而不是查询数据存储区,如此链接http://blog.initlabs.com/post/16359268329/how-i-reduced-google-app-engine-costs-by-75中所述。

无论如何,据我所知,NDB已经透明地使用了memcache https://cloud.google.com/appengine/docs/python/ndb/

我看到大量的读取操作,我不明白为什么数据不经常更改。

使用ndb时明确使用memcache是​​没有意义的吗?

更新

虽然我刷新同一页面,但我总是在appstat中看到类似的东西

 @0ms memcache.Get real=6ms api=0ms cost=0 billed_ops=[]
 @7ms datastore_v3.Get real=12ms api=0ms cost=0 billed_ops=[]
 @22ms datastore_v3.RunQuery real=16ms api=0ms cost=0 billed_ops=[]
 @41ms datastore_v3.RunQuery real=12ms api=0ms cost=0 billed_ops=[]
 @92ms datastore_v3.RunQuery real=71ms api=0ms cost=0 billed_ops=[]

这让我觉得memcache.Get(第一行)失败了。我对吗?怎么会这样?

1 个答案:

答案 0 :(得分:1)

我不清楚你在问什么,所以让我重新解释你的问题只是为了安全起见:

你问为什么,如果你把你的数据放到memcache中,memcache会失败吗?好吧,这可能是因为memcache会自行刷新,因为它可以随机执行。

如果你每次都看到,那么确实可能出现了问题。但是我看到你创建数据存储区的方式最初并没有出现在memcache中。