是否可以在应用引擎datatore上同时使用db和ndb进行缓存?

时间:2019-05-21 21:44:39

标签: python-2.7 google-app-engine google-cloud-datastore app-engine-ndb

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

ndb查询未缓存通过db的写操作,这就是问题所在。我发现此解决方法可以禁用对ndb How to clear cache for specific model in NDB

的缓存读取

但是我想知道是否还有另一种方法来指导对此进行管理,或者该解决方案是否可以完全迁移到ndb?

1 个答案:

答案 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的迁移,在大多数情况下,这并不是一个大任务。除了使用受官方支持的解决方案之外,您还可以改善性能,并可能降低成本。恕我直言,值得。