redis batsd(statsd)专柜

时间:2012-06-05 23:24:35

标签: ruby nosql redis statsd

我将batsd(使用statsd)库与jeremy/statsd-ruby客户端用于我的ruby Web应用程序(rails)。我必须保持简单的访问统计。大!我使用上面gem中的statsd.increment('users.visits')方法。

然后我注意到,此操作一旦创建新的sorted setzset)并且每次都添加一个元素(看起来像"1338932870<X>1)。 为什么statsd使用这种方法?使用HINCRBY方法使用simlpe哈希(不是zaddzset)会不会更加轻松和更快吗?

我知道,statsd是好的和众所周知的乐器,但我想知道,它是redis中的反坦克模式吗?我是redis和nosql的新手,谢谢!

1 个答案:

答案 0 :(得分:4)

我不熟悉该软件包,但如果您只是使用HINCRBY,则只需计算度量标准的最后一个值并将其保存在Redis中。我想统计包可能需要存储度量的演变(以便随着时间的推移绘制图形或类似的东西)。

使用zset是一种存储按时间戳排序的事件(即时间序列)的方法,因此可以保留此度量标准演变的历史记录。它比较慢并消耗更多的内存而不仅仅是保留最后一个值,但是你有历史记录。有关完整故事,请参阅下面的诺亚评论。

使用HINCRBY或INCRBY实时聚合计数器,并使用zset存储时间序列是两种常见的Redis模式。