0

我正在使用使用Python ndb數據存儲API的Google應用引擎應用程序。 由於我想優化應用程序,我想知道緩存數據而不是查詢數據存儲,如鏈接http://blog.initlabs.com/post/16359268329/how-i-reduced-google-app-engine-costs-by-75中所述。Google ndb和memcache

反正據我瞭解NDB已經透明地使用內存緩存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(第一排)失敗這樣的事情。我對嗎?怎麼會這樣?

+0

您如何看待讀取操作?那些響應時間是多少? –

+0

我看到百分比。我現在是唯一的用戶,並在幾個小時內達到10%。無論如何,我正在介紹AppStats來進行測量 – lowcoupling

+0

嘗試使用此功能進行分析:https://cloud.google.com/appengine/docs/python/tools/appstats –

回答

1

我對你的要求不清楚,所以讓我改一下你的問題只是爲了安全起見:

你問爲什麼,如果你把你的數據放入內存緩存,可在內存緩存失敗?這可能是因爲memcache自己刷新了,因爲它可以隨機做。

如果你看到每一次,那麼確實可能是錯誤的。但是我看到它你創建了一個數據存儲庫,首先它並不存在於內存緩存中。