NDB缓存无法在Google App Engine上运行

时间:2013-01-18 15:04:33

标签: google-app-engine memcached app-engine-ndb

我切换到NDB以获得一个新的应用程序,据我所知,包括内存支持'免费'。

所以我在数据存储区中放了一个实体:

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()

在其他请求中,我然后使用

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

但是在部署在app引擎上时测试它的延迟告诉我没有缓存(显然没有预期第一次调用,但后续调用应显示加速)。

我检查Memcache Viewer,确定,在每个指标下都为零。所以我显然没有得到关于免费NDB缓存的东西。有人可以指出它是什么吗?

1 个答案:

答案 0 :(得分:14)

当您使用.get_by_id()(或密钥上的.get()时,NDB只会从缓存中读取。使用.query()时将不会使用它。