0

そのようにGoogle App Engineオブジェクトを解析することは可能ですか...

objects = db.GqlQuery('SELECT * FROM Database WHERE item='random'')
memcache.add('object', objects, 3600)
if object =='some condition':
  #here can I do a query on 'objects' without using GqlQuery
elif object =='something else':
  #do a different query than the one above

アイデアは、オブジェクトを memcache に保存し、そのオブジェクトをさまざまな方法で操作することです。これは、データストアの読み取りを軽減するためです。前もって感謝します!

4

1 に答える 1

2

あなたはできるし、誰もがそれをしていることに気付くでしょう。ただし、考慮しなければならないことがたくさんあります。

  1. 現時点では、結果ではなくクエリ オブジェクトを memcache に保存しようとしています。 objectsあなたのコードではクエリオブジェクトです。run、fetch などを使用して結果を取得します。

  2. オブジェクトを操作し、書き戻さずに memcache に保存すると、データなどが失われます。memcache は appengine の信頼できるストレージ メカニズムではなく (単なるキャッシュです)、いつでも削除される可能性があります。

  3. クエリが単一の結果を返すことを意図している場合、キーでオブジェクトを取得します。これは、クエリと比較して、memcache よりもはるかに効率的であり、それほど遅くはありません。(ndb は get をキャッシュします - 次のポイントを参照してください)

  4. appengine から始めているようです。既存のコード ベースがない場合はndbdb. 私の意見では、それはより良いライブラリです。 ndbmemcache とリクエスト/インスタンスで (get() を使用する場合) 多くのキャッシュを行います。

于 2013-10-27T06:36:55.700 に答える