0

部署新应用程序版本时,AppEngine 上的 NDB 是否会自动刷新或以其他方式使缓存项失效?如果模型被修改,那么从基于旧模型定义的缓存中提取数据似乎是不好的。

(在使用 NDB 之前,当我自己缓存所有项目时,我会通过使用应用程序版本 ID 作为 memcache 键的一部分来确保不会在版本之间保留 memcached 项目)

4

1 回答 1

1

Afaik ndb 不会自动执行此操作(但我不知道您的应用程序的新版本是否会获得新的 memcache 实例,我们从来没有遇到过问题)。但是您始终可以从仪表板手动刷新内存缓存。

如果你喜欢实验,ndb.context 中有属性“_memcache_prefix”,它可能会做你想做的事,但目前官方不支持改变它。

另请注意,更改模型不会更改您的数据库。所以无论如何你都会从数据库中提取基于旧模型的数据。它只是应用于您的模型,为缺少的属性填充默认值。

于 2013-02-06T09:28:07.533 回答