NDB query() 是否通过缓存?

Mar*_*ijk 5 python google-app-engine memcached app-engine-ndb

NDB query() 是否通过缓存?

NDB 文档提到它将自动使用缓存。这仅适用于 get_by_id 还是也适用于查询语句,例如:

Product.query().order(Product.name).fetch()
Run Code Online (Sandbox Code Playgroud)

在许多页面中,我都显示了一个产品列表,这就是我希望它来自缓存的原因。

另一种方法是查询产品列表并自己存储在内存缓存中,但在这种情况下,产品更新不会最终出现在我的“手动”缓存中。或者可以选择自己将所有产品 ID 存储在缓存中,然后通过 memcache/datastore 检索它们。但这将需要一个 get_by_id 接受多个 id 并返回一个列表..

Eag*_*gle 1

我有同样的问题。由于查询没有被缓存(至少在不同的上下文之间,或者这是我在文档中理解的),我决定对查询进行内存缓存,并使其与我的添加/更新/删除数据保持同步。

是我的问题解决方案。我希望它有帮助。