代码之家  ›  专栏  ›  技术社区  ›  static_rtti

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

  •  1
  • static_rtti  · 技术社区  · 14 年前

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

    设计数据存储的好方法和简单方法是什么?如果您的解决方案仅使用标准python,则会获得额外的积分。

    1 回复  |  直到 14 年前
        1
  •  0
  •   Eli Bendersky    14 年前

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

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

    如果坚持只使用Python的解决方案,那么可以考虑使用Python预先安装的SQLite的Python绑定。SQLite DB可以由两个进程以安全的方式并发使用,只要您的数据访问语义定义良好(即,您无论如何都必须解决的问题,该工具无法承受)。