我正在Python中构建一种监视工具,我希望在短时间内保留某些统计信息。我只想为一个统计信息最多保留30条记录,而随着新记录的出现,旧记录将被覆盖。这样,仅保留30条最新记录。我应该使用哪种类型的文件(我将拥有多个不同的统计信息,我只想保留它们的最近历史记录。这些统计信息会定期更新(约15秒))。
我希望它在文件中,因为数据将在另一个程序中处理。
答案 0 :(得分:2)
如果仅保留少量样本(并且您不关心历史数据),那么最简单的解决方案是将数据保留在内存中。您可以使用here中所述的collections.deque
对象来创建固定长度的列表,该列表将在添加新项目时自动删除旧项目。
对于需要长期保留数据的情况(或者只是希望在应用程序重新启动时保留数据,或者希望能够从多个应用程序访问数据等),人们经常使用专用的time series database,例如InfluxDB,Prometheus,Graphite或许多其他解决方案中的任何一种。
答案 1 :(得分:0)
您可能希望将其全部保留在内存中。但是,如果您需要保留一个模仿的文件和一个数据结构(例如字典),那么pickle
可以取得很大的成功。简单,快速。
https://pythontips.com/2013/08/02/what-is-pickle-in-python/
另一种企业解决方案是将您的统计信息简单地存储在数据库中。