一个网站访问日志文件,如何取其中访问次数最多前10位的ip地址?

richard_2010 2011-04-06 07:37:26
分两种情况:1是日志文件不太大,2是日志文件很大。
大家说说看。
...全文
865 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
说实在的,这问题我都不想向下看了!

分析日志,那日志的格式呢?示例数据呢?难道摸黑分析么?
moxiaomomo 2011-10-04
  • 打赏
  • 举报
回复
可以选择使用多个hash来进行优化,将大文件分成小文件再作后续处理
richard_2010 2011-04-07
  • 打赏
  • 举报
回复
木人讨论就让帖子沉了吧
想喝咖啡的貓 2011-04-07
  • 打赏
  • 举报
回复
将日志数据处理->写入一个临时表(或者多个表)->select
richard_2010 2011-04-07
  • 打赏
  • 举报
回复 1
我的想法:
1、文件不是很大的时候把内容都读入内存,用ip地址做key放到HashMap中,每次放的时候先判断HashMap中是否有该ip的key,不存在则value为1,存在则value+1再放进去,文件读完后再依次输出HashMap的key和value到一个大顶堆中去,可以加上优化,比如value为1的不存入大顶堆,这样一次循环完后再依次输出大顶堆中的前10个值就可以了,也可以满足动态的,比如取前20位,前5位ip次数最多的。

2、如果文件很大的时候把内容分析后存入数据库日志表,这样用sql语句很容易找到访问排名前10位的ip。

大家有什么更好的想法也说说看啊……
幻蝶成仙 2011-04-07
  • 打赏
  • 举报
回复
除了自己写算法外,用一用jre中的一些类,会更容易一些。
richard_2010 2011-04-06
  • 打赏
  • 举报
回复
这么冷清。。。。
fb425932688 2011-04-06
  • 打赏
  • 举报
回复
en ,我也觉得
richard_2010 2011-04-06
  • 打赏
  • 举报
回复
考的就是算法和基础知识咯。对了,不限java
strike2368168 2011-04-06
  • 打赏
  • 举报
回复
这个就要写算法搞定了~~

67,549

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧