2012-01-04 14 views
2

私はこの動作が連続して成功することに気付きました。Google App Engineのデータストアビューアから削除してエンティティを削除しても、エンティティはMemcacheから削除されません。

誰もがこれを見ましたか?

+2

なぜデータストア操作がmemcacheに影響するのですか? – Ski

+0

memcache.flush_all()を手作業で行うのはなぜですか? – lucemia

+0

管理者コンソールからエントリを削除しているときも、Google管理者インターフェースはmemcacheの削除を実行する必要があります。これにより、一貫性のない状態になります。バグを提出する... –

答えて

1

高レプリケーションデータストアを使用している場合は、削除が成功した直後に取得し、古くなった結果をプルアップすることができます。各操作の結果が他の操作の結果に表示されるまでには数秒かかります。

Memcacheは、データストアとは独立して動作します。 Objectifyのようないくつかのライブラリはそれらを接続します。 Objectifyを使用してエンティティをキャッシュし、Objectify以外のもの(データビューアなど)から何かを削除する場合は、キャッシュを自分で更新する必要があります。これは時折私に起こり、私はmemcache全体を拭くだけです。

この動作を使用する方法を見つける必要があります。たとえば、最も簡単な(高価で実際に遅い)メソッドは、すべてのデータストア操作を実行してから10秒待つだけです。より良いメソッドでは、キャッシュを使用して、新しく格納または削除されたエンティティを返すことがあります。

+1

管理コンソールでデータストアビューアについて話しています、質問をお読みください:) –

2

私はmemcacheから1つのエンティティを削除する方法を見つけましたが、それはうまく動作します。 JavaとObjectifyを使用していますが、使用する環境や言語が何であれ、この機能が役立つことを願っています。

  1. プロジェクトのページhttps://console.cloud.google.com/appengine/memcacheにアクセスしてください。
  2. 名前空間に「ObjectifyCache」という値、または使用する名前空間を入力します。
  3. キータイプで、Java Stringを選択します。
  4. これはトリッキーなビットです。キーの下で、エンティティのデータストア編集ページから見つかる「URLセーフキー」を入力する必要があります(https://console.cloud.google.com/datastore/entities/edit
  5. 「検索」をクリックするとエンティティが表示されます。
  6. ボックスをチェックし、そして今、あなたは何が出てくるんだろう、もう一度検索をクリックしてDELETE

をクリックしてください。

関連する問題