我有一个旧版应用程序版本(webapp2),该版本使用db写入数据存储。我编写了一个新的只读烧瓶API,该API在同一数据存储区上使用ndb。
ndb查询未缓存通过db的写操作,这就是问题所在。我发现此解决方法可以禁用对ndb How to clear cache for specific model in NDB
的缓存读取但是我想知道是否还有另一种方法来指导对此进行管理,或者该解决方案是否可以完全迁移到ndb?
答案 0 :(得分:2)
否,当两个客户端都处于活动状态时,无法使用缓存,因为ndb
客户端通过memcache
使用了缓存,而db
客户端则没有。来自The Python DB Client Library for Cloud Datastore:
注意:强烈建议开发新应用程序的开发人员使用NDB Client Library,其中有几个 与该客户端库相比的优势,例如自动实体 通过Memcache API进行缓存。如果当前正在使用旧的数据库 客户端库,请阅读DB to NDB Migration Guide。
尝试使用ndb
缓存意味着每个客户端看到的同一实体之间可能会有差异。
由于db
已被标记为已弃用一段时间,因此,我宁愿花些时间进行向ndb
的迁移,在大多数情况下,这并不是一个大任务。除了使用受官方支持的解决方案之外,您还可以改善性能,并可能降低成本。恕我直言,值得。