从大量的IP访问记录中找到访问次数最多的IP

从大量的IP访问记录中找到访问次数最多的IP

1.内存不受限

一个IP有32bit(4Byte),1GB=10亿,那么在4GB内存的情况下,可以存10亿个IP。用HashMap,边存入IP边维护一个最大次数,这样遍历一遍就可以求出,时间复杂度为O(n)。

2.内存受限

假设我们有1TB的数据,但内存只有4GB,不能将数据全部读入内存做运算。

  • 从输入流中读取1TB的数据,将IP地址按模1000运算,相同的模值IP写到同一个文件中。这样就会产生1000个小文件,每个文件大约1GB,且保证了相同的IP一定在同一个文件中。
  • 对这1000个文件中的每个文件使用HashMap找到该文件中的最多IP,然后1000个局部极值比较,再求出最值,有点像小组赛晋级然后总决赛。

【Reference】

  1. 从1亿个ip中找出访问次数最多的IP http://blog.csdn.net/linmiansheng/article/details/19290879
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/112603.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 伟大的淘宝IP库的API接口竟然提示503挂掉了

    伟大的淘宝IP库的API接口竟然提示503挂掉了

    2021年11月5日
  • ASP.NET图书管理系统简单实现步骤「建议收藏」

    ASP.NET图书管理系统简单实现步骤「建议收藏」一、数据库添加 ![用户信息表](https://img-blog.csdnimg.cn/20190105001446419.PNG?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ0MDMyNDEx,size_16,color_…

    2022年7月22日
  • 关于引用mshtml的问题[通俗易懂]

    今天看了个验证码识别的代码,其中引用到了mshtml.dll,找了半天原来就是microsoft.mshtml.dll。查这个dll的时候还发现了好几篇关于这个dll添加问题的文章。顺便看了下,原来这个dll有三个,添加引用时要注意了。   第一篇文章:   1.添加引用的问题   一般在开发环境下会在三个地方存有microsoft.mshtml.dll文件。所以在添加引用时,也

    2022年4月6日
  • 新装的CentOS 7安装python3[通俗易懂]

    新装的CentOS 7安装python3[通俗易懂]centos7自带有python,但是确实python2版本的python,如果你想安装个python3怎么办呢?难道要从github上把源码clone下来进行编译安装么?这么做对于我们个人用户来说,完全没必要嘛。1.首先,你要知道系统现在的python的位置在哪儿:[root@root~]#whereispythonpython:/usr/bin/python2.7/

    2022年6月26日
  • Python函数基础[通俗易懂]

    Python函数基础[通俗易懂]函数声明、调用、返回基础Python中使用def关键字来声明函数,声明函数的格式为:有3个需要注意的地方:1.函数名后面必须加冒号2.如果函数体和def不在同一行,则必须缩进3.ret

    2022年7月5日
  • 超火的Vhr(SpringBoot +Vue)实战项目+文档

    超火的Vhr(SpringBoot +Vue)实战项目+文档项目摘要vhr是一个基于SpringBoot+Vue技术栈开发的前后端分离项目,项目使用SpringBoot2.1.8来开发,集成了当前企业级开发中众多的热门技术点,如消息中间件、Redis缓存、SpringBoot+Vue+ElementUI技术栈等等。技术选型核心框架:SpringBoot2.1.8 安全管理:SpringSecurity 持久层框架:MyBatis 缓存:Redis 数据库:MySQL8 消息队列:RabbitMQ 即时通信:WebSocket

    2022年10月28日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号