2017-09-03 2 views
0

Je veux utiliser Redis pour suivre certains numéros. Fondamentalement, ils sont des compteurs. Existe-t-il un moyen d'utiliser Redis pour suivre la vitesse à laquelle ces compteurs augmentent? Par exemple, disons qu'un compteur est incrémenté à la cadence de 10 par minute pendant la majeure partie du temps, mais subitement il est incrémenté à un débit de 40 par minute. Comment puis-je détecter cela?Mise en œuvre de détection de salves ou de pointes dans un compteur à l'aide de Redis

Répondre

0

Vous ne pouvez pas le faire directement, mais vous pouvez le faire avec un ensemble trié par exemple, avec un peu de côté client, ou un traitement basé sur Lua.

Disons que vous utilisez un ensemble triée, pour chaque fenêtre de temps vous augmentez la valeur:

ZINCRBY mykey timestamp 1 

alors vous avez un simple compteur par horodatage.

Lorsque vous voulez analyser, vous pouvez prendre une plage en temps avec ZRANGE ou ZREVRANGE, obtenir les scores en utilisant WITHSCORES, et faire un peu de traitement sur les différences de détection des anomalies. Il y a plusieurs façons de le faire, voici un lien avec quelques pointeurs: https://stats.stackexchange.com/questions/152644/what-algorithm-should-i-use-to-detect-anomalies-on-time-series