我有一个在多处理中运行的 Django 站点。我已经通过 Python-memchached 启用了 Memcahced。我知道每个进程都有自己的内存。
我有一个自定义缓存,可以有效地将整个数据库表 T 及其相关字段加载到内存中,然后将整个数据重新创建为不同的格式并将其保存在对象 F 中。每次用户尝试添加/删除/更新 T 表通过 Django,站点将首先将这些更改应用到 F。如果更改通过了某些条件,它将保存在 Django 对象和数据库中。如果更改不符合条件,它会回滚 F 而不会触及 Django 对象或数据库。
我已将 F 放在原始表的自定义管理器中。
目标:一个为所有人服务的F
问题:每个过程都有自己的F。它们彼此不一致。初始化 F 很繁重,我希望它只在 Django 应用程序初始化时发生一次。然后修改 F 是便宜的。
问题:我应该把F放在哪里?Memcahced 是否有一份来自数据库的数据副本?在那种情况下,我可以将 F(它是一个 python 对象)放在 memcached 中并直接在那里处理吗?我如何在某个地方定义它 F 只会被初始化一次并且所有进程都可以访问它?
如果有帮助,这里有更多详细信息:F 是 NetworkX 图。姜戈:1.4.3 独角兽:0.17.0
非常感谢!
时代