在Linux系统上存储Python数据

2024-05-14 21:19:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要创建一个在linux系统上存储python数据结构的系统,但是对来自多个程序/守护程序/脚本的数据具有并发读写访问权限。我的第一个想法是创建一个unix套接字来监听连接,并将请求的数据作为pickled python数据结构提供。客户机的任何写操作都会被同步到磁盘上(可能是批处理的,不过我不希望它是高吞吐量的,所以只使用linuxvfs缓存就可以了)。这将确保只有一个进程读写数据。在

另一种想法是只将pickled数据结构保存在磁盘上,只允许单个进程通过锁文件或令牌进行访问。。。这要求所有访问客户端遵守锁定机制/使用访问模块。在

我在看什么?SQLite是可用的,但我希望尽可能简单。在

你会怎么做?在


Tags: 数据程序脚本权限数据结构客户机进程linux
3条回答

如果您只想存储名称/值对(例如,文件名到pickled数据),您可以始终使用Berkley DB(http://code.activestate.com/recipes/189060-using-berkeley-db-database/). 如果您的数据是面向数字的,那么您可能需要检查PyTables(http://www.pytables.org/moin). 如果您真的想使用套接字(我通常会尽量避免这种情况,因为您需要担心很多细节),您可能需要看看Twisted Python(它适合于通过Python处理多个连接,而不需要线程)。在

我会用数据库。一个真正的。这就是它们存在的原因(好吧,原因之一)。如果你不需要的话,就不要重新发明轮子。在

如果可以的话,我会使用SQLite。在

请参阅以下常见问题解答:http://www.sqlite.org/faq.html#q5--SQLite(使用pysqlite[0])应该能够优雅地处理并发。在

如果您愿意,您可以将数据保存为简单的键值对,不需要对数据执行所有BNF操作。在

[0]http://trac.edgewall.org/wiki/PySqlite

相关问题 更多 >

    热门问题