5

NDB query()はキャッシュを通過していますか?

NDBドキュメントには、キャッシュが自動的に使用されると記載されています。これはget_by_idの場合のみですか、それとも次のようなクエリステートメントの場合もあります。

Product.query().order(Product.name).fetch()

多くのページで商品リストを表示しているので、キャッシュから取得したいのです。

別の方法は、製品リストをクエリして自分でmemcacheに保存することですが、この場合、製品の更新は「手動」キャッシュに保存されません。または、すべての製品IDを自分でキャッシュに保存し、memcache/datastoreを介して取得するオプションもあります。ただし、これには、複数のIDを受け入れてリストを返すget_by_idが必要になります。

4

1 に答える 1

1

私も同じ問題を抱えていました。クエリはキャッシュされていないため (少なくとも、異なるコンテキスト間で、またはこれはドキュメントで理解していることです)、クエリを memcache に保存し、追加/更新/削除データと同期させることにしました。

ここに問題の私の解決策がありました。お役に立てば幸いです。

于 2013-05-23T07:32:02.480 に答える