【发布时间】:2023-04-05 01:34:02
【问题描述】:
NDB query() 是否通过缓存?
NDB 文档提到它将自动使用缓存。 这仅适用于 get_by_id 还是也适用于查询语句,例如:
Product.query().order(Product.name).fetch()
在许多页面中,我都显示了一个产品列表,这就是我希望它来自缓存的原因。
另一种方法是自己查询产品列表并存储在 memcache 中,但在这种情况下,产品更新不会最终出现在我的“手动”缓存中。 或者,是否可以自己将所有产品 ID 存储在缓存中,然后通过 memcache/datastore 检索它们。但这需要一个 get_by_id 接受多个 id 并返回一个列表..
【问题讨论】:
-
文档说“查询不会在任何缓存中查找值。但是,如果缓存策略这样写,查询结果将被写回上下文缓存(但绝不会写回 Memcache)。
-
蒂姆是对的。 (蒂姆:您应该重新提交您的评论作为答案,这样它才能被接受并获得信用。)
-
关于将列表存储在缓存中的任何建议?
标签: python google-app-engine memcached app-engine-ndb