7

私が理解しているように、「無料」のmemcacheサポートが含まれている新しいアプリ用に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 Engine にデプロイされたときのテストの遅れは、キャッシュが行われていないことを示しています (明らかに、最初の呼び出しでは予期されていませんが、後続の呼び出しでは速度が向上するはずです)。

Memcache Viewer をチェックすると、確かに、すべてのメトリックの下にゼロが表示されます。だから私は明らかに無料のNDBキャッシングに関して何も得ていません。誰かがそれが何であるかを指摘できますか?

4

1 に答える 1

14

NDBは、使用時.get_by_id()(または.get()キー上)にのみキャッシュから読み取ります。を使用する場合は使用されません.query()

于 2013-01-18T16:15:05.400 に答える