【发布时间】:2017-07-05 19:09:29
【问题描述】:
我正在为 radius 服务器开发前端系统。
radius 服务器将每 180 秒将更新传递给系统。这意味着,如果我有大约 15,000 个客户,那么每天将有大约 7,200,000 个条目......这是很多。
我试图了解存储和检索这些数据的最佳方式是什么。显然,随着时间的推移,这将变得很重要。 MongoDB会处理这个吗?典型的文档不多,东西这个
{
id: 1
radiusId: uniqueId
start: 2017-01-01 14:23:23
upload: 102323
download: 1231556
}
但是,会有很多这样的记录。我想这类似于 SNMP NMS 服务器处理数据的方式,据我所知,他们使用 RRD 来执行此操作。
目前在我的测试中,我只是将每个文档推送到一个集合中。所以我问,
A) Mongo 是适合这项工作的工具吗? B) 是否有更好/更优选/更优化的数据存储方式
编辑:
好的,万一有人遇到这个需要帮助。
我在mongo中运行了一段时间,对性能真的不满意。我们可以将其归结为我正在运行的硬件,也许是我的知识水平或我正在使用的框架。但是,我找到了一个非常适合我的解决方案。 InfluxDB 几乎可以直接处理所有这些,它是一个时间序列数据库,它实际上是我试图存储的数据 (https://github.com/influxdata/influxdb)。对我来说,表现就像白天和黑夜。再说一次,可能都是我的错,只是更新这个。
编辑 2:
所以过了一段时间,我想我明白了为什么我从来没有得到我想要的 Mongo 性能。我使用sailsjs 作为框架,它使用正则表达式按id 搜索,这显然对性能有很大影响。我最终会尝试迁移回 Mongo 而不是涌入,看看会不会更好。
【问题讨论】:
-
您能否分享一下您想要存储的数据量。另外请分享一下,如果您在特定时间后不再需要该数据,是否需要自动清除功能?