【发布时间】:2016-01-22 18:02:46
【问题描述】:
假设我每秒大约有 150 个请求进入 api (node.js),然后登录到 Redis。按照这个速度,价格适中的RedisToGo 实例将每隔一小时左右填满一次。
日志只需要生成每日\每月\每年的统计信息:哪个是请求最多的关键字,哪个是请求最多的url,每天的请求总数等。没有超繁重的计算,但有点耗时遍历数组以查看每个数组中出现频率最高的元素。
如果我分析然后转储这些数据(也许在节点中使用 setInterval 函数?),比如说,每 30 分钟一次,这似乎没什么大不了的。但是,如果我突然不得不处理每秒 2500 个请求怎么办?
突然之间,我每小时处理 4.5 ~ Gb 的数据。每 30 分钟大约 2.25Gb。即使 redis\node 有多快,计算最频繁的请求仍然需要一分钟。
问题: 在处理 2.25 GB 的数据时,redis 实例会发生什么? (我想来自一个列表)
有没有更好的方法来处理潜在的大量日志数据而不是将其移动到 redis 然后定期刷新?
【问题讨论】:
标签: node.js performance logging heroku redis