首页 > 解决方案 > 是否可以在应用引擎数据存储上同时使用 db 和 ndb 缓存?

问题描述

我有一个使用 db 写入数据存储区的旧版应用程序版本 (webapp2)。我编写了一个新的只读烧瓶 API,它在同一个数据存储上使用 ndb。

通过 db 的写入不会为 ndb 查询缓存,这就是问题所在。我发现这个解决方法可以禁用 ndb 的缓存读取,如何清除 NDB 中特定模型的缓存

但我想知道是否有另一种方法来指导管理这个问题,或者该解决方案是否完全迁移到 ndb?

标签: python-2.7google-app-enginegoogle-cloud-datastoreapp-engine-ndb

解决方案


不,当两个客户端都处于活动状态时,无法使用缓存,因为ndb客户端使用缓存,memcachedb客户端不使用。来自Cloud Datastore 的 Python DB 客户端库

注意:强烈建议构建新应用程序的开发人员使用NDB 客户端库,与此客户端库相比,它有几个好处,例如通过 Memcache API 自动进行实体缓存。如果您当前使用的是较旧的 DB 客户端库,请阅读DB 到 NDB 迁移指南

尝试使用ndb缓存意味着每个客户端看到的相同实体之间可能存在差异。

由于db现在已被标记为已弃用一段时间,因此我宁愿花时间迁移到ndb,在大多数情况下,这并不是一项艰巨的任务。除了使用官方支持的解决方案运行之外,您还可以获得性能提升,并可能降低成本。恕我直言,值得。


推荐阅读