我需要每10分钟收集一次数据并将数据存储32小时。这意味着,我将拥有这些数据的192个条目,我需要经常访问这192个条目。
起初我想使用数组并将元素推入其中。如果我的计数器是更高的tan 192,我将删除第一个元素(32小时前收集的那个)。但是,我认为这可能会很慢。
另一种方法是将数据写入linux上的/ tmp目录,实际上并不关心删除它,只是阅读最新的192个条目。
我对谷歌搜索没有太多了解,所以有人能指出我正确的方向吗?
此外,如果在重新启动/重新启动机器时数据丢失也没问题。
答案 0 :(得分:1)
将它存储在一个数组中将比将其保存到磁盘更快,并且每次要访问它时都必须重新读取任何文件。
速度实际上应该与这种类型的操作完全无关,所以你可以像下面这样做:
var updateArray = function(arr, newData) {
if (arr.length > 192) {
arr = arr.slice(1); // Remove first entry
}
arr[arr.length] = newData;
return arr;
};
答案 1 :(得分:0)
对于这种要求,我建议将数据存储在像redis或memcache这样的快速缓存中。您可以指定密钥自行过期的时间。这种方式非常快,您无需明确管理它。因此,我建议缓存将数据存储更长时间,缓存服务器可以与应用程序服务器分离,这样重启时数据不会丢失。
另外我想指出/ tmp目录不能被信任存储任何东西,因为操作系统会不时清理它。
如果要存储数据,请改用db。