有效地存储客户数据

时间:2012-10-21 14:44:02

标签: python client-server storage

我正在开发一个客户端 - 服务器应用程序,以在多个客户端中分发和执行代码。这就是它必须工作的方式:

  1. 客户端每分钟连接到服务器发送其状态。
  2. 服务器存储客户端IP和状态。
  3. 有人发送要执行的代码到服务器。
  4. 服务器搜索空闲且活跃的客户端并发送代码。
  5. 我的问题是我可以处理的客户数量。我在考虑使用列表存储客户对象或类似的东西,但我可能有成千上万的客户,所以也许不是一个好主意,因为我会耗尽资源。哪个可能是在不挂起服务器的情况下有效存储所有客户数据的最佳选择?

    很抱歉没有显示任何代码,但我目前正处于设计步骤中,我对此感到困惑。该项目将使用Python开发,但我不需要代码。

2 个答案:

答案 0 :(得分:3)

如果您只是担心没有足够的内存来保存所有Python数据,您可以腌制它并跟踪例如ID和腌制文件Python Docs Pickle

另一个很好的例子是Shelve

这两者的优点是不必担心在SQL数据库上序列化或建模数据。

当然,你可以选择两者的结合。挑选数据并将结果字符串保存在数据库的字段中。这样,如果将来需要,您可以简单地添加包含元数据的列。当涉及速度考虑时,您要么将其保存在数据库中,以便您可以很好地查询它,或者将其保存为文件以便摆脱“开销”。关注过早优化。

答案 1 :(得分:2)

Sqlite是一个简单的数据库存储和高效,或者使用mongoDB(没有sql数据库),如果你不喜欢mysql

http://www.sqlite.org/

http://www.mongodb.org/

我认为它们比mysql更快......