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

use*_*108 7 google-app-engine memcached app-engine-ndb

我切换到NDB以获得一个新的应用程序,据我所知,其中包括memcache支持'免费'.

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

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()
Run Code Online (Sandbox Code Playgroud)

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

obj = pickle.loads(MyStorage.query(ancestor = ndb.Key('top_level_key', 'second_level_key')).get().pickled_data)
Run Code Online (Sandbox Code Playgroud)

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

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

Gre*_*reg 14

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