7

我切换到 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()

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

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

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

我检查了 Memcache Viewer,果然,每个指标下都为零。所以我显然没有得到关于免费 NDB 缓存的信息。有人能指出它是什么吗?

4

1 回答 1

14

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

于 2013-01-18T16:15:05.400 回答