【问题标题】:NDB caching not working on Google App EngineNDB 缓存在 Google App Engine 上不起作用
【发布时间】:2013-01-02 07:49:46
【问题描述】:

我为一个新应用切换到 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 缓存的信息。谁能指出它是什么?

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2015-10-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-21
      相关资源
      最近更新 更多