2012-09-29 72 views
2

我的網站是電影目錄。一旦用戶登錄,我告訴他/她最新的電影添加到我的數據庫:自動NDB緩存如何工作?

movies = Movies.query() 
movies = movies.order(-Movies.added) 
movie = movies.get(keys_only = True) // get_latest_movie_id 

是否緩存(影片被添加到數據庫每週,所以它應該被緩存)?如何驗證(即什麼是memcache密鑰)? 昨天大約1000個用戶訪問我的網站,我已經得到了

OverQuotaError: The API call datastore_v3.RunQuery() required more quota than is available.

回答

8

只有NDB緩存由Key獲取。我懷疑你的示例代碼movies是一個查詢,而NDB不會緩存查詢,你需要自己去做。

+0

我更新了代碼。所以,這沒有被緩存,對吧? 'Movies.get_by_id(movie_id)'緩存了嗎?在哪裏可以閱讀關於NDB緩存的更多信息? –

+4

您發佈的代碼不會使用memcache。 Movies.get_by_id(movie_id)將會。關於緩存的文檔中有整個頁面:https://developers.google.com/appengine/docs/python/ndb/cache – Greg