用LUA字典进行IP数据去重操作

Posted 糖果的实验室

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用LUA字典进行IP数据去重操作相关的知识,希望对你有一定的参考价值。

因为业务需要,监控手机客户端对服务器在一分钟内请求的总数和IP访问量(求PV、IP数),要对IP数据进行去重操作,单位时间1分钟的HTTP请求,IP相同的只保留一个IP,少用IF,多用循环。利用Lua语言Table数据结构Key的唯一性,不能重复的特点进行去重操作,代码如下:


Moonscript实现:


Lua实现:


如果此方案有坑,望请大家留言。




与正文不相关的部分(可以忽略不看):


 实际上为了简单,我们统计IP总数,并没有统计IP对应的出现次数,如果保存了 IP和IP出现的次数,其实就可以统计单位一分钟内某IP访问的频次,在实际业务当中,一个IP的请求次数是有一定的取值范围的,高出合格峰值很多的话,这个IP是应该被关注,后续可以将上面的方法,进行扩展,实时统计出IP请求量, 与设定的预警值进行比较,如果发现总请求次数与总IP数据过高,发出预警。


也可以将前Top10-100名IP请求的数,进行饼图可视化显示。 



以上是关于用LUA字典进行IP数据去重操作的主要内容,如果未能解决你的问题,请参考以下文章

字典操作

Python之集合函数

字典操作

字典操作

关于字典dict“相加减”以及KeyError处理

python数据类型之字典类型