我应该如何在一个小的多线程python应用程序中共享和存储数据?

时间:2010-07-09 09:27:56

标签: python multithreading concurrency datastore

我正在编写一个小型多线程客户端python应用程序,它包含一个小型Web服务器(仅提供本地主机的页面)和一个守护程序。 Web服务器将数据加载并放入持久性“数据存储区”,守护程序处理此数据,修改它并添加更多数据。它还应该负责与磁盘的同步。

我希望尽可能避免复杂的外部事物,如SQL或其他数据库。

设计数据存储区的好方法是什么?如果您的解决方案仅使用标准python,则可获得奖励。

1 个答案:

答案 0 :(得分:0)

您所寻求的并不是特定于Python的,因为AFAIU您希望在两个不同的进程之间进行通信,这些进程只是偶然用Python编写的。如果这确实是你的问题,你应该寻找一个通用的解决方案,而不是特定于Python的解决方案。

我认为像Redis这样的简单No-SQL键值数据存储可能是一个非常好的解决方案。与使用专门为此目的而设计的工具的“复杂”相反,实际上会使您的代码更简单。

如果您坚持使用仅支持Python的解决方案,那么请考虑使用预先安装了Python的SQLite的Python绑定。只要您的数据访问语义定义良好(即无论如何必须解决的问题,无论如何都是工具),SQLite DB可以安全地同时由两个进程使用。