2013-01-18 39 views
7

我轉而使用NDB來獲取新應用程序,據我瞭解,這包括免費的memcache支持。NDB緩存在Google App Engine上不起作用

所以我把一個實體的數據存儲:

class MyStorage(ndb.Model): 
    pickled_data = ndb.BlobProperty() 

obj = MyStorage(parent=ndb.Key('top_level_key', 'second_level_key'), pickled_data = pickle.dumps(my_attr)) 
obj.put() 

在其他請求在App Engine上部署當我再檢索使用

obj = pickle.loads(MyStorage.query(ancestor = ndb.Key('top_level_key', 'second_level_key')).get().pickled_data) 

但在測試它的延遲告訴我有沒有緩存(明顯沒有預期的第一次通話,但隨後的通話應該顯示加速)。

我檢查Memcache查看器,果然,在每個指標下爲零。所以我顯然沒有獲得有關免費NDB緩存的內容。有人能指出它是什麼嗎?

回答

14

當您使用.get_by_id()(或關鍵字上的.get())時,NDB將只從緩存讀取。當您使用.query()時不會使用它。

相關問題