我有一个Python类,在处理时需要使用一些大小约为300M的映射数据。这个过程将使用多个Python工作程序来运行。由于数据不会改变,但在处理过程中实现可能会改变,我正在寻找一些方法,使用公共源为每个工作人员持久保存这些数据。换句话说,我想要一个这样的实现,即这些数据不会为其他实例消耗内存,所有工作人员都应该能够使用映射,而无需创建/使用相同的另一个副本。以下是我已经尝试(或已经排除(的实现列表-
- 添加
@classmethod
&用该类的一个实例运行每个worker - 使用全局变量
- 在ABC中使用变量
- 使用LRU功能工具
- 使用Redis
尽管我已经尝试了上述类别的实现,但我可能错过了以正确的方式使用它们。
感谢
我衷心推荐选项#5。我使用Redis作为代理、结果后端和缓存。无论如何,它是为这类东西而设计的,如果你使用Redis集群,你也有很高的可用性。