使用Redis在计数器中实现突发或尖峰检测

时间:2017-09-03 04:01:00

标签: redis

我想用Redis跟踪某些数字。基本上,他们是柜台。有没有办法使用Redis来跟踪这些计数器增加的速率?

例如,假设计数器在大多数时间以每分钟10次的速度递增,但突然之间以每分钟40次的速度递增。我怎么能检测出来?

1 个答案:

答案 0 :(得分:0)

你不能直接这样做,但你可以用一个排序集来做到这一点,例如,有一些客户端或基于Lua的处理。

假设你使用一个有序集,为每个时间窗增加值:

ZINCRBY mykey timestamp 1

然后每个时间戳都有一个简单的计数器。

当您想要对其进行分析时,您可以使用ZRANGEZREVRANGE获取一个时间范围,使用WITHSCORES获取分数,并对检测差异进行一些处理异常。有很多方法可以做到这一点,这里有一些指针:https://stats.stackexchange.com/questions/152644/what-algorithm-should-i-use-to-detect-anomalies-on-time-series