0

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

  1. 客户端连接到服务器,每分钟发送一次状态。
  2. 服务器存储客户端 IP 和状态。
  3. 有人向服务器发送要执行的代码。
  4. 服务器搜索免费且活跃的客户端并发送代码。

我的问题是我可以处理的客户数量。我正在考虑使用列表来存储客户对象或类似的东西,但我可能有成千上万的客户,所以这可能不是一个好主意,因为我会用完资源。哪个可能是在不挂起服务器的情况下有效存储所有客户端数据的最佳选择?

很抱歉没有显示任何代码,但我目前正处于设计阶段,我被困住了。该项目将使用 Python 开发,但我不需要代码。

4

2 回答 2

3

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

另一个很好的例子是Shelve

这两种方法的好处是不必担心在例如 SQL 数据库上对数据进行序列化或建模。

当然,你也可以将两者结合起来。腌制数据并将结果字符串保存在数据库的字段中。这样,如果将来需要,您可以简单地添加带有元数据的列。当谈到速度考虑时,您要么将其保存在数据库中以便可以很好地查询它,要么将其保存为文件以摆脱“开销”。小心过早的优化。

于 2012-10-21T14:52:33.300 回答
2

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

http://www.sqlite.org/

http://www.mongodb.org/

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

于 2012-10-21T14:49:41.370 回答