使用NodeJS存储x小时的数据

时间:2014-02-20 10:57:15

标签: node.js store tmp

我需要每10分钟收集一次数据并将数据存储32小时。这意味着,我将拥有这些数据的192个条目,我需要经常访问这192个条目。

起初我想使用数组并将元素推入其中。如果我的计数器是更高的tan 192,我将删除第一个元素(32小时前收集的那个)。但是,我认为这可能会很慢。

另一种方法是将数据写入linux上的/ tmp目录,实际上并不关心删除它,只是阅读最新的192个条目。

我对谷歌搜索没有太多了解,所以有人能指出我正确的方向吗?

此外,如果在重新启动/重新启动机器时数据丢失也没问题。

2 个答案:

答案 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。