记录一道有趣的数据存取,以及攻击行为判断的题目

题目

三元组(IP1, IP2, T) 描述了行为: 在T时刻,IP1对IP2进行了访问行为;其中将IP1称为源地址,IP2称为目的地址;地址为IPV4格式,如192.168.0.1 10.10.101.10 时间T为字符串格式,例如2019-06-21 23:02:31

现在有一批数据(总数据量为100亿条),期中每一条数据描述了一次访问行为

问题

  1. 请设计一中存储方式,实现数据的存储,并大致描述存储所需要的磁盘空间大小
  2. 若在一定时间X(单位:秒)内,IP1对IP2的访问行为次数超过了N,则称IP1对IP2发生了攻击行为

解答问题一

ip一个int存,时间unix时间long存
这样一个数据是16个字节
100亿数据 就是 1016 10亿 = 160GB

解答问题二

开一个大一些的缓存
用lru,新加入的ip计数为0,已经访问过就加一
这样短时间访问的应该,内存够大的话,是可以把访问频率高的,拦截到的吧?

然后一个头条小姐姐这么回答

redis:计数:key可以构造为ip1toip2的字符串,value是一个list列表,里面存放时间戳,每次都从尾部插入。如果list长度超过n就发生了攻击(判断列表头部的时间戳是否已经在当前时间–x之前了,是的话弹出lpop)在代码端ip1->ip2的时候,rpush ip1toip2

返回解答问题一

存储的话,可不可以做成和文件目录那样,分成二级目录,第二级目录里面存时间戳

原文地址:https://www.cnblogs.com/Draymonder/p/11067316.html

时间: 2024-08-29 13:00:44

记录一道有趣的数据存取,以及攻击行为判断的题目的相关文章

iOS本地数据存取,这里就够了

iOS本地数据存取,看这里就够了 应用沙盒 每个iOS应用都有自己的应用沙盒(应用沙盒就是文件系统目录),与其他文件系统隔离.应用必须待在自己的沙盒里,其他应用不能访问该沙盒 应用沙盒的文件系统目录,如下图所示(假设应用的名称叫Layer) 应用沙盒的文件系统目录 应用沙盒结构分析 应用程序包:(上图中的Layer)包含了所有的资源文件和可执行文件 Documents:保存应用运行时生成的需要持久化的数据,iTunes同步设备时会备份该目录.例如,游戏应用可将游戏存档保存在该目录 tmp:保存应

Android开发学习笔记:数据存取之SQLite浅析

一.SQLite的介绍 1.SQLite简介 SQLite是一款轻型的数据库,是遵守ACID的关联式数据库管理系统,它的设计目标是嵌入 式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了.它能够支持 Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如Tcl.PHP.Java.C++..Net等,还有ODBC接口,同样比起 Mysql.PostgreSQL这两款开源世界著名的数据库管理系统来讲,它的

【转】大数据存取的选择:行存储还是列存储?

上个月参加了一个云存储的技术讨论会.这一个月里,陆续收到几位同学讨论大数据保存和处理的邮件.今天是周末,索性把这个月的交流内容整理写下来,供各位参考. 目前大数据存储有两种方案可供选择:行存储和列存储.业界对两种存储方案有很多争持,集中焦点是: 谁能够更有效地处理海量数据,且兼顾安全.可靠.完整性.从目前发展情况看,关系数据库已经不适应这种巨大的存储量和计算要求,基本是淘汰出局.在已知的几种大数据处理软件中,Hadoop 的 HBase 采用列存储,MongoDB 是文档型的行存储,Lexst

记录些有趣的虫

开始记录一些有趣的缺陷··· 1.前端分页机制引入的搜索缺陷 背景:在默认页面使用搜索功能正常(搜索返回成功),但是在第二页相同的搜索内容返回为空,再次点击搜索有能够正确返回内容. 监控几次net请求 Request URL:默认页面搜索成功并返回查找内容的请求 http://*******/spring/taskAction/getSubActionList?_search=false&nd=1451294618340&rows=10&page=1&sidx=&s

一道有趣的算法题。。。

题目意思: 用1, 2, 3 ,4 ,5, 6, 7, 8, 9 组成3个三位数 abc, def 和 ghi, 每个数字恰好使用一次,要求abc:def:ghi = 1:2:3.输出所有解. 分析: 模拟所有三位数,判断条件有二: 一.i(abc):j(def):k(ghi)=1:2:3 二.判断是否出现的1~9之间的所有数字 代码: /** *一道有趣的算法题 * */ #include<iostream> #include<cstdio> using namespace st

第35课 文本编辑器中的数据存取

1. QAction的信号 (1)QAction被点击后,会产生一个triggered信号 (2)通过信号与槽机制能够捕捉对QAction对象的操作 (3)项目中可以将多个信号映射到同一个槽函数 connect(action, SIGNAL(triggered()), this, SLOT(slot_function())); 2. 文件打开操作 3. 文件“保存”和“另存为”操作                     [编程实验]文本编辑器的数据存取 4. 小结 (1)Qt项目中尽量将界面代

高性能JS笔记2——数据存取

数据存取性能而言: 字面量>本地变量>数组元素>对象成员 一.标识符解析的性能 标识符解析是有代价的,一个标识符的位置越深,它的读写速度也就越慢. 局部变量的读写速度是最快的,全局变量在作用域链的最末端,所以尽可能使用局部变量. 如果某个跨作用域的值在函数中被引用一次以上,那么久把它存储到局部变量里. 二.改变作用域链 作用域链运行后一般不会改变的,With和 Try-Catch可以在执行时临时改变作用域链,功能模块执行完后,作用域链恢复. 改变作用域链后,访问改变后的对象更快了,但是访

第五章 以数据为中心—数据存取(1)

第五章以数据为中心-数据存取 典型的桌面操作系统提供一种公共文件系统--任何应用软件可以使用它来存储和读取文件,该文件也可以被其它的应用软件所读取(会有一些权限控制设定).而Android 采用了一种不同的系统.在Android 中,所有的应用软件数据(包括文件)为该应用软件所私有.然而,Android 同样也提供了一种标准方式供应用软件将私有数据开放给其它应用软件.这一章将描述一个应用软件存储和获取数据.开放数据给其他应用软件.从其他应用软件请求数据并且开放它们的多种方式. 可供选择的存储方式

java下实现压缩数据存取

使用Apache Commons Compress实现压缩数据存取,支持格式有XZ,7z,tar,zip,jar,bzip2,gzip等. 例子在 https://commons.apache.org/compress/examples.html 而java se包含gzip功能. InputStream is = new GZIPInputStream(new FileInputStream(file));