python-2.7 - 是否可以在应用引擎数据存储上同时使用 db 和 ndb 缓存?
问题描述
我有一个使用 db 写入数据存储区的旧版应用程序版本 (webapp2)。我编写了一个新的只读烧瓶 API,它在同一个数据存储上使用 ndb。
通过 db 的写入不会为 ndb 查询缓存,这就是问题所在。我发现这个解决方法可以禁用 ndb 的缓存读取,如何清除 NDB 中特定模型的缓存
但我想知道是否有另一种方法来指导管理这个问题,或者该解决方案是否完全迁移到 ndb?
解决方案
不,当两个客户端都处于活动状态时,无法使用缓存,因为ndb
客户端使用缓存,memcache
而db
客户端不使用。来自Cloud Datastore 的 Python DB 客户端库:
注意:强烈建议构建新应用程序的开发人员使用NDB 客户端库,与此客户端库相比,它有几个好处,例如通过 Memcache API 自动进行实体缓存。如果您当前使用的是较旧的 DB 客户端库,请阅读DB 到 NDB 迁移指南。
尝试使用ndb
缓存意味着每个客户端看到的相同实体之间可能存在差异。
由于db
现在已被标记为已弃用一段时间,因此我宁愿花时间迁移到ndb
,在大多数情况下,这并不是一项艰巨的任务。除了使用官方支持的解决方案运行之外,您还可以获得性能提升,并可能降低成本。恕我直言,值得。
推荐阅读
- javascript - Firebase Firestore 查询不返回数据
- php - 在输入输入时搜索数据库中的字符串
- machine-learning - Py4JJavaError:调用 o767.fit 时出错
- spring - 在 @WebMvcTest 中创建 @Nested 测试时出现 TooManyActualInvocations 异常
- excel - 使用 VBA 迭代求解方程变量
- java - 一组类的接口,其对象仅由另一个接口的实现创建?
- snakemake - 在 Snakefile 中指定输入和输出文件
- php - 任何自动修复 PHP 编码标准问题的工具(可能是在线工具)
- android - 使用 Moshi 处理错误响应
- reactjs - 告诉渲染代码等到收到对象