基于散列式多级缓存索引的IP地址离线数据匹配方法与流程
未命名
09-23
阅读:55
评论:0
基于散列式多级缓存索引的ip地址离线数据匹配方法
技术领域
1.本发明涉及数据匹配领域,具体地,涉及基于散列式多级缓存索引的ip地址离线数据匹配方法和系统。
背景技术:
2.在万物互联的大背景下,ip信息呈现井喷式增长,ipv4已经枯竭,ipv6正在大力普及,ipv6理论上可分配的ip数达到约340万亿。在联网在线实时交易领域,通常需要通过客户交易网络ip对应所在地,来完成实时交易风险识别及事后交易分析、报表统计等业务场景。
3.在高并发高响应的实时交易中,对ip地址的归属地的获取,一般采取第三方api异步方式进行网络ip转换对应所在地(简称“ip归属”),此模式响应时效慢、并发能力低,难以满足实时获取ip归属地进行实时业务分析的场景,例如实时交易风险识别场景。
4.专利文献cn106953806b公开了一种基于后缀索引匹配ip地址的方法,包括以下步骤:s1.对ip路由数据构建后缀索引;s2.将ipv6地址平均分为k段,然后分别为每段ipv6地址构建不同的哈希表,每张哈希表存放段内不同后缀在后缀索引中的区间值;s3.对于给定的目的ip地址,将其平均分为k段,然后将k段目的ip地址通过二分查找法在k张哈希表中查找匹配的后缀索引区间,并记录匹配的后缀索引区间所在的哈希表对应的段数;s4.根据记录的段数进行段内回溯查找,输出目的ip的路由信息。
5.但是,专利文献cn106953806b的索引信息仅分布在有限的哈希表中,查询效率受限于ipv6的数据量。
技术实现要素:
6.针对现有技术中的缺陷,本发明的目的是提供一种基于散列式多级缓存索引的ip地址离线数据匹配方法和系统。
7.根据本发明提供的一种基于散列式多级缓存索引的ip地址离线数据匹配方法,包括:
8.步骤sa:获取ip地址信息离线数据;
9.步骤sb:将所述ip地址信息离线数据每条记录的ip信息,缓存预热到散列目标ip信息索引池;其中,对ip信息进行分段拆分,按不同的ip段存储为不同级别的目标ip信息索引池;
10.步骤sc:根据实时交易中需要匹配的ip信息,实时通知ip检索引擎针对已经完成预热的目标ip信息索引池,索引ip归属信息;其中,所述ip检索引擎对需要匹配的ip信息进行拆分,到对应的目标ip信息索引池进行检索。
11.优选地,所述步骤sb包括如下步骤:
12.步骤sb.1:将所述ip地址信息离线数据,进行ipv4、ipv6的区分;
13.步骤sb.2:对于ipv4,分别将起始ip、结束ip前两段组织成一级ip信息索引,存储
到一级ip信息索引池;在所述一级ip信息索引池中,索引的key为ip前两段对应整数值,索引的value值为该段ip段起始ip对应整数值$该段ip段结束ip对应整数值,索引的排序序号为key;
14.将完整的ip信息存储到二级ip信息索引池,二级ip信息索引池的命名包含起始ip对应整数值、结束ip对应整数值信息;在所述二级ip信息索引池中,索引的key分别为完整的起始ip、结束ip对应整数值,索引的value值为完整的归属信息,索引的排序序号为key;
15.若起始ip、结束ip存在跨段,则将起始ip及结束ip存储到跨段ip信息索引池;在所述跨段ip信息索引池中,索引的key分别为完整的起始ip及结束ip对应整数值,索引的value值分别为二级索引key|起始ip对应整数值$结束ip对应整数值、二级索引key#起始ip对应整数值$结束ip对应整数值,索引的排序序号为key;符号|、#、$均表示代码索引内部信息分隔符;
16.步骤sb.3:对于ipv6,分别将起始ip、结束ip的首段整数值组织成一级ip信息索引,存储到一级ip信息索引池;在所述一级ip信息索引池中,索引的key分别为起始ip、结束ip首段整数值,索引的value为起始ip首段整数值$结束ip首段整数值,索引的排序序号为key;
17.将起始ip、结束ip中段整数值组织成二级ip信息索引,存储到对应的二级ip信息索引池;在所述二级ip信息索引池中,二级ip信息索引池名称中包含起始ip首段整数值,起始ip中段整数值信息,索引的key分别为起始ip中段整数值、结束ip中段整数值,索引的value值为二级索引key|起始ip中段整数值$结束ip中段整数值,索引的排序序号为key;
18.将起始ip及结束ip尾段整数值组织成三级ip信息索引,存储到对应的三级ip信息索引池;在所述三级ip信息索引池中,三级ip信息索引池名称中含起始ip中段ip整数值、起始ip尾段整数值信息,索引的key分别为起始ip尾段整数值,索引的value值分别为完整的归属信息,索引的排序序号为key。
19.优选地,所述步骤sd包括如下步骤:
20.步骤sd.1:对需要匹配的ip信息进行自动识别ipv4、ipv6;
21.步骤sd.2:对于ipv4,将ip前三段转换成整数值,在一级ip信息索引池中检索排序号第一个小于等于该整数值的二级ip信息索引;
22.若未查找到二级ip信息索引,则到二级ip信息索引池查找跨段ip信息索引,获取到二级ip信息索引值;使用二级ip信息索引到对应二级ip信息索引池,获取归属信息;
23.步骤sd.3:对于ipv6,将ipv6进行全ip补全,形成补全后的全ipv6信息;
24.步骤sd.4:将所述全ipv6信息进行转换,获得ipv6的首段整数值、中段整数值、尾段整数值;使用首段整数值到一级ip信息索引池检索排序号第一个小于等于该首段整数值的二级ip信息索引;使用中段整数值到对应的二级ip信息索引池检索三级ip信息索引值;使用尾段整数值到对应三级ip信息索引池,检索归属信息。
25.优选地,在所述步骤sa中,采用多并发方式分片获取ip地址信息离线数据;
26.存储时同步对各级缓存索引根据排序序号从小到大序号进行排序;
27.在所述步骤sb中,根据索引存储模型散列式存储缓存,其中,在所述索引存储模型中,每级索引的value值存储该段下一级索引所有起始索引及结束索引。
28.根据本发明提供的一种基于散列式多级缓存索引的ip地址离线数据匹配系统,包
括:
29.模块ma:获取ip地址信息离线数据;
30.模块mb:将所述ip地址信息离线数据每条记录的ip信息,缓存预热到散列目标ip信息索引池;其中,对ip信息进行分段拆分,按不同的ip段存储为不同级别的目标ip信息索引池;
31.模块mc:根据实时交易中需要匹配的ip信息,实时通知ip检索引擎针对已经完成预热的目标ip信息索引池,索引ip归属信息;其中,所述ip检索引擎对需要匹配的ip信息进行拆分,到对应的目标ip信息索引池进行检索。
32.优选地,所述模块mb包括如下模块:
33.模块mb.1:将所述ip地址信息离线数据,进行ipv4、ipv6的区分;
34.模块mb.2:对于ipv4,分别将起始ip、结束ip前两段组织成一级ip信息索引,存储到一级ip信息索引池;在所述一级ip信息索引池中,索引的key为ip前两段对应整数值,索引的value值为该段ip段起始ip对应整数值$该段ip段结束ip对应整数值,索引的排序序号为key;
35.将完整的ip信息存储到二级ip信息索引池,二级ip信息索引池的命名包含起始ip对应整数值、结束ip对应整数值信息;在所述二级ip信息索引池中,索引的key分别为完整的起始ip、结束ip对应整数值,索引的value值为完整的归属信息,索引的排序序号为key;
36.若起始ip、结束ip存在跨段,则将起始ip及结束ip存储到跨段ip信息索引池;在所述跨段ip信息索引池中,索引的key分别为完整的起始ip及结束ip对应整数值,索引的value值分别为二级索引key|起始ip对应整数值$结束ip对应整数值、二级索引key#起始ip对应整数值$结束ip对应整数值,索引的排序序号为key;符号|、#、$均表示代码索引内部信息分隔符;
37.模块mb.3:对于ipv6,分别将起始ip、结束ip的首段整数值组织成一级ip信息索引,存储到一级ip信息索引池;在所述一级ip信息索引池中,索引的key分别为起始ip、结束ip首段整数值,索引的value为起始ip首段整数值$结束ip首段整数值,索引的排序序号为key;
38.将起始ip、结束ip中段整数值组织成二级ip信息索引,存储到对应的二级ip信息索引池;在所述二级ip信息索引池中,二级ip信息索引池名称中包含起始ip首段整数值,起始ip中段整数值信息,索引的key分别为起始ip中段整数值、结束ip中段整数值,索引的value值为二级索引key|起始ip中段整数值$结束ip中段整数值,索引的排序序号为key;
39.将起始ip及结束ip尾段整数值组织成三级ip信息索引,存储到对应的三级ip信息索引池;在所述三级ip信息索引池中,三级ip信息索引池名称中含起始ip中段ip整数值、起始ip尾段整数值信息,索引的key分别为起始ip尾段整数值,索引的value值分别为完整的归属信息,索引的排序序号为key。
40.优选地,所述模块md包括如下模块:
41.模块md.1:对需要匹配的ip信息进行自动识别ipv4、ipv6;
42.模块md.2:对于ipv4,将ip前三段转换成整数值,在一级ip信息索引池中检索排序号第一个小于等于该整数值的二级ip信息索引;
43.若未查找到二级ip信息索引,则到二级ip信息索引池查找跨段ip信息索引,获取
到二级ip信息索引值;使用二级ip信息索引到对应二级ip信息索引池,获取归属信息;
44.模块md.3:对于ipv6,将ipv6进行全ip补全,形成补全后的全ipv6信息;
45.模块md.4:将所述全ipv6信息进行转换,获得ipv6的首段整数值、中段整数值、尾段整数值;使用首段整数值到一级ip信息索引池检索排序号第一个小于等于该首段整数值的二级ip信息索引;使用中段整数值到对应的二级ip信息索引池检索三级ip信息索引值;使用尾段整数值到对应三级ip信息索引池,检索归属信息。
46.优选地,在所述模块ma中,采用多并发方式分片获取ip地址信息离线数据;
47.存储时同步对各级缓存索引根据排序序号从小到大序号进行排序;
48.在所述模块mb中,根据索引存储模型散列式存储缓存,其中,在所述索引存储模型中,每级索引的value值存储该段下一级索引所有起始索引及结束索引。
49.根据本发明提供的一种存储有计算机程序的计算机可读存储介质,所述计算机程序被处理器执行时实现所述的基于多级缓存索引的ip地址离线数据匹配方法的步骤。
50.根据本发明提供的一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被处理器执行时实现所述的基于多级缓存索引的ip地址离线数据匹配方法的步骤。
51.与现有技术相比,本发明具有如下的有益效果:
52.1、本发明为满足高并发高响应的实时交易场景下,能够快速的获取ip归属信息,提出基于散列式多级缓存索引ip地址信息离线数据快速匹配的解决方案。
53.2、本发明设计散列式索引池、索引池多级缓存、索引池存储、ip检索引擎、索引池失效防范等功能模块,模块之间有机结合。
54.3、本发明结合快速索引检索法,实现以毫秒级ip归属匹配能力,完成在线实时交易领域相关实时ip归属识别功能。
附图说明
55.通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
56.图1为本发明的工作原理示意图。
57.图2为ipv4索引结构示意图。
58.图3为ipv6索引结构示意图。
具体实施方式
59.下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。
60.本发明提供了一种基于散列式多级缓存索引的ip地址离线数据匹配方案,本发明采用散列式索引池、索引池多级缓存、索引池存储、ip检索引擎、索引池失效防范等功能模块,模块之间有机结合,并结合快速索引检索法,实现以毫秒级ip归属匹配能力,完成在线实时交易领域相关实时ip归属识别功能。其中,所述索引池多级缓存实现了多级缓存索引。
61.本发明是构建存储、匹配、预热、散列、多级索引等全方位的解决方案,解决访问热点、支持海量横向扩展、查找次数过多影响时效、ipv6更新准确性等问题。具体如下:
62.通过设计散列式索引缓存,在索引池的数据量分布上较为平均,匹配的数据量较少,查找效率更快、更稳定。同时在海量ipv6的数据量的场景下,索引池具有天然的横向扩展能力;避免索引信息仅分布在有限的哈希表中,导致查询效率受制于ipv6的数据量,
63.对ipv6仅设计三级索引,结合散列式缓存,整体匹配只需要3次小范围数据量匹配即可匹配出对应的信息;在大数据量的情况下,搜索整体效率满足实时交易对响应时效的要求;
64.在实时交易高并发场景下,通过目标ipv6的信息,快速定位散列式缓存索引池,可以有效的解决数据访问热点等问题,具有很好的访问散热能力;
65.通过缓存预热的解决方案,在海量ipv6数据进行更新时,仅需对对应的索引池进行预热更新及无缝切换,保障实时交易匹配时信息的准确性;面对海量ipv6更新时,避免因哈希表过大而导致更新期间影响实时交易匹配的信息正确性的风险;
66.基于现有的ip规范下支持ipv4、ipv6的匹配,有效了解决在线实时交易场景下的多种ip的匹配需求场景。
67.散列式索引池:对超大数据量的离线ip数据进行一定规则的散列式索引池缓存存储设计,实现数据存储散列,有效降低ip归属检索的数据基量、有效实现高并发下的数据散热及有效防范缓存失效导致基准丢失问题。具体地,对ip进行分段拆分,按不同的ip段存储为不同级别的散列式缓存索引池,构建三级ip信息索引池支持128位ipv6不同ip段的索引信息存储,二级ip信息索引池对ipv4进行兼容。
68.多级缓存索引:对ip数据进多级缓存索引有序存储设计,以解决因ipv6占用128位导致无法进行有序存储的问题,及有效提升ip匹配检索效率;通过设计二、三级缓存的向上兼容,实现多版本ip归属匹配。具体地,ipv6的1-2段、3-5段、5-8段分别按照一、二、三级缓存索引进行存储;ipv4以前三段为一级索引,全ip为二级缓存索引;在多级缓存索引存储的过程中进行按顺序预排序。
69.索引池存储:采取多并发分片对超大量离线数据进行快速构建索引并存储索引。具体地,采取多并发分片获取离线ip数据,将ip数据的起始ip及结束ip以设计的存储模式进行缓存索引构建及存储。
70.索引池失效防范:采取散列索引池预热及无缝热切方式,实现无索引失效期提供检索的能力。结合索引池存储预热及通知检索引擎检索目标索引池。
71.ip检索引擎:对检索ip根据索引池规则进行拆分,并按约定规则到对应索引池采取快速检索法在多级缓存中快速检索。
72.下面对本发明提供的一种基于多级缓存索引的ip地址离线数据匹配方法,包括:
73.步骤s1:对离线数据进行设计多级缓存索引,形成索引存储模型。所述步骤s1包括如下步骤:
74.步骤s1.1:对ipv4进行二级缓存索引设计,如图2所示。ipv4前两段作为一级索引名,key值分别为完整的起始ip及结束ip对应的长整数,value值存储该段所有起始ip及结束ip对应长整数。二级索引key值为一级索引value值,value值为归属所需要的必要信息。若起始ip及结束ip存在跨段信息,建立跨段ip信息索引表。
75.步骤s1.2:对ipv6进行三级缓存索引设计,如图3所示。ipv6三级索引分别设计为1-2段对应长整数(简称“首段整数值”)设计为一级索引,3-5段对应长整数(简称“中段整数值”)设计为二级索引,6-8段对应长整数(简称“尾段整数值”)设计为三级索引。每级索引的value值存储该段下一级索引所有起始索引及结束索引。三级索引的value值为归属所需要的必要信息。
76.步骤s2:采用多并发方式分片获取离线ip数据信息,即ip地址信息离线数据。
77.步骤s3:将离线ip数据信息每条记录的起始ip及结束ip根据索引存储模型散列式存储,缓存预热到目标ip信息索引池;
78.所述步骤s3包括如下步骤:
79.步骤s3.1:将离线ip数据信息区分ipv4、ipv6。
80.步骤s3.2:ipv4时分别将起始ip及结束ip前两段组织成一级索引,存储到一级ip信息索引池,key为ip前两段对应整数值,value值为“该段ip段起始ip对应整数值$该段ip段结束ip对应整数值”,排序序号为key,其中,符号$表示代码索引内部信息分隔符;将完整的ip信息存储到二级ip信息索引池,二级ip信息索引池命名包含“起始ip对应整数值、结束ip对应整数值”信息,key分别为完整的起始ip及结束ip对应整数值,value值为完整的归属信息,排序序号为key;
81.若起始ip与结束ip存在跨段,则将起始ip及结束ip存储到跨段ip信息索引池,key分别为完整的起始ip及结束ip对应整数值,value值分别为“二级索引key|起始ip对应整数值$结束ip对应整数值”及“二级索引key#起始ip对应整数值$结束ip对应整数值”,排序序号为key。存储时同步对各级缓存索引根据排序从小到大序号进行排序。其中,符号|、#、$均表示代码索引内部信息分隔符;
82.步骤s3.3:ipv6时分别将起始ip及结束ip的首段整数值组织成一级索引,存储到一级ip信息索引池,key分别为起始ip及结束ip首段整数值,value为“起始ip首段整数值$结束ip首段整数值”,排序序号为key。将起始ip及结束ip中段整数值组织成二级索引,存储到对应的二级ip信息索引池,二级ip信息索引池名称中包含“起始ip首段整数值,起始ip中段整数值信息”,key分别为起始ip中段整数值及结束ip中段整数值,value值为:“二级索引key|起始ip中段整数值$结束ip中段整数值”,排序序号为key。将起始ip及结束ip尾段整数值组织成三级索引,存储到对应的三级ip信息索引池,三级ip信息索引池名称中含“起始ip中段ip整数值、起始ip尾段整数值”信息,key分别为起始ip尾段整数值即结束ip尾段整数值,value值分别为完整的归属信息,排序序号为key。存储时同步对各级缓存索引根据排序序号进行从小到大排序。
83.步骤s4:根据实时交易中的ip信息在ip信息索引池中,实时通知ip检索引擎针对已经完成的预热ip信息索引池,利用ip检索引擎进行无缝切换的方式,检索目标ip信息索引池。其中,ip检索引擎发送归属信息给互联网实时交易端。
84.所述步骤s4包括如下步骤:
85.步骤s4.1:对需要匹配的ip进行自动识别ipv4、ipv6
86.步骤s4.2:ipv4时,将ip前3段转换成整数值,在一级ip信息索引池中利用二叉查找法检索排序号第一个小于等于该整数值的二级索引。若未查找到二级索引,则到二级ip信息索引池使用相同方法查找跨段索引,获取到二级索引值。使用二级索引到对应二级ip
信息索引池获取详细的归属信息。
87.步骤s4.3:ipv6时,将ipv6进行全ip补全,形成补全后的全ipv6信息。
88.步骤s4.4:将ipv6信息转换获得ipv6的首段整数值、中段整数值、尾段整数值;使用首段整数值到一级ip信息索引池利用二叉查找法检索排序号第一个小于等于该整数值的二级索引;使用中段整数值到对应的二级ip信息索引池检索三级索引值;使用尾段整数值到对应三级索引检索归属信息。
89.本发明还提供一种基于多级缓存索引的ip地址离线数据匹配系统,本领域技术人员可以通知执行所述基于多级缓存索引的ip地址离线数据匹配方法的流程步骤实现所述基于多级缓存索引的ip地址离线数据匹配系统,即可以将所述基于多级缓存索引的ip地址离线数据匹配方法理解为所述基于多级缓存索引的ip地址离线数据匹配系统的优选实施方式。
90.根据本发明提供的一种基于散列式多级缓存索引的ip地址离线数据匹配系统,包括:
91.模块ma:获取ip地址信息离线数据;
92.模块mb:将所述ip地址信息离线数据每条记录的ip信息,缓存预热到散列目标ip信息索引池;其中,对ip信息进行分段拆分,按不同的ip段存储为不同级别的目标ip信息索引池;
93.模块mc:根据实时交易中需要匹配的ip信息,实时通知ip检索引擎针对已经完成预热的目标ip信息索引池,索引ip归属信息;其中,所述ip检索引擎对需要匹配的ip信息进行拆分,到对应的目标ip信息索引池进行检索。
94.优选地,所述模块mb包括如下模块:
95.模块mb.1:将所述ip地址信息离线数据,进行ipv4、ipv6的区分;
96.模块mb.2:对于ipv4,分别将起始ip、结束ip前两段组织成一级ip信息索引,存储到一级ip信息索引池;在所述一级ip信息索引池中,索引的key为ip前两段对应整数值,索引的value值为该段ip段起始ip对应整数值$该段ip段结束ip对应整数值,索引的排序序号为key;
97.将完整的ip信息存储到二级ip信息索引池,二级ip信息索引池的命名包含起始ip对应整数值、结束ip对应整数值信息;在所述二级ip信息索引池中,索引的key分别为完整的起始ip、结束ip对应整数值,索引的value值为完整的归属信息,索引的排序序号为key;
98.若起始ip、结束ip存在跨段,则将起始ip及结束ip存储到跨段ip信息索引池;在所述跨段ip信息索引池中,索引的key分别为完整的起始ip及结束ip对应整数值,索引的value值分别为二级索引key|起始ip对应整数值$结束ip对应整数值、二级索引key#起始ip对应整数值$结束ip对应整数值,索引的排序序号为key;符号|、#、$均表示代码索引内部信息分隔符;
99.模块mb.3:对于ipv6,分别将起始ip、结束ip的首段整数值组织成一级ip信息索引,存储到一级ip信息索引池;在所述一级ip信息索引池中,索引的key分别为起始ip、结束ip首段整数值,索引的value为起始ip首段整数值$结束ip首段整数值,索引的排序序号为key;
100.将起始ip、结束ip中段整数值组织成二级ip信息索引,存储到对应的二级ip信息
索引池;在所述二级ip信息索引池中,二级ip信息索引池名称中包含起始ip首段整数值,起始ip中段整数值信息,索引的key分别为起始ip中段整数值、结束ip中段整数值,索引的value值为二级索引key|起始ip中段整数值$结束ip中段整数值,索引的排序序号为key;
101.将起始ip及结束ip尾段整数值组织成三级ip信息索引,存储到对应的三级ip信息索引池;在所述三级ip信息索引池中,三级ip信息索引池名称中含起始ip中段ip整数值、起始ip尾段整数值信息,索引的key分别为起始ip尾段整数值,索引的value值分别为完整的归属信息,索引的排序序号为key。
102.优选地,所述模块md包括如下模块:
103.模块md.1:对需要匹配的ip信息进行自动识别ipv4、ipv6;
104.模块md.2:对于ipv4,将ip前三段转换成整数值,在一级ip信息索引池中检索排序号第一个小于等于该整数值的二级ip信息索引;
105.若未查找到二级ip信息索引,则到二级ip信息索引池查找跨段ip信息索引,获取到二级ip信息索引值;使用二级ip信息索引到对应二级ip信息索引池,获取归属信息;
106.模块md.3:对于ipv6,将ipv6进行全ip补全,形成补全后的全ipv6信息;
107.模块md.4:将所述全ipv6信息进行转换,获得ipv6的首段整数值、中段整数值、尾段整数值;使用首段整数值到一级ip信息索引池检索排序号第一个小于等于该首段整数值的二级ip信息索引;使用中段整数值到对应的二级ip信息索引池检索三级ip信息索引值;使用尾段整数值到对应三级ip信息索引池,检索归属信息。
108.优选地,在所述模块ma中,采用多并发方式分片获取ip地址信息离线数据;
109.存储时同步对各级缓存索引根据排序序号从小到大序号进行排序;
110.在所述模块mb中,根据索引存储模型散列式存储缓存,其中,在所述索引存储模型中,每级索引的value值存储该段下一级索引所有起始索引及结束索引。
111.根据本发明提供的一种存储有计算机程序的计算机可读存储介质,所述计算机程序被处理器执行时实现所述的基于多级缓存索引的ip地址离线数据匹配方法的步骤。
112.根据本发明提供的一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被处理器执行时实现所述的基于多级缓存索引的ip地址离线数据匹配方法的步骤。
113.本领域技术人员知道,除了以纯计算机可读程序代码方式实现本发明提供的系统、装置及其各个模块以外,完全可以通过将方法步骤进行逻辑编程来使得本发明提供的系统、装置及其各个模块以逻辑门、开关、专用集成电路、可编程逻辑控制器以及嵌入式微控制器等的形式来实现相同程序。所以,本发明提供的系统、装置及其各个模块可以被认为是一种硬件部件,而对其内包括的用于实现各种程序的模块也可以视为硬件部件内的结构;也可以将用于实现各种功能的模块视为既可以是实现方法的软件程序又可以是硬件部件内的结构。
114.以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本技术的实施例和实施例中的特征可以任意相互组合。
技术特征:
1.一种基于散列式多级缓存索引的ip地址离线数据匹配方法,其特征在于,包括:步骤sa:获取ip地址信息离线数据;步骤sb:将所述ip地址信息离线数据每条记录的ip信息,缓存预热到散列目标ip信息索引池;其中,对ip信息进行分段拆分,按不同的ip段存储为不同级别的目标ip信息索引池;步骤sc:根据实时交易中需要匹配的ip信息,实时通知ip检索引擎针对已经完成预热的目标ip信息索引池,索引ip归属信息;其中,所述ip检索引擎对需要匹配的ip信息进行拆分,到对应的目标ip信息索引池进行检索。2.根据权利要求1所述的基于散列式多级缓存索引的ip地址离线数据匹配方法,其特征在于,所述步骤sb包括如下步骤:步骤sb.1:将所述ip地址信息离线数据,进行ipv4、ipv6的区分;步骤sb.2:对于ipv4,分别将起始ip、结束ip前两段组织成一级ip信息索引,存储到一级ip信息索引池;在所述一级ip信息索引池中,索引的key为ip前两段对应整数值,索引的value值为该段ip段起始ip对应整数值$该段ip段结束ip对应整数值,索引的排序序号为key;将完整的ip信息存储到二级ip信息索引池,二级ip信息索引池的命名包含起始ip对应整数值、结束ip对应整数值信息;在所述二级ip信息索引池中,索引的key分别为完整的起始ip、结束ip对应整数值,索引的value值为完整的归属信息,索引的排序序号为key;若起始ip、结束ip存在跨段,则将起始ip及结束ip存储到跨段ip信息索引池;在所述跨段ip信息索引池中,索引的key分别为完整的起始ip及结束ip对应整数值,索引的value值分别为二级索引key|起始ip对应整数值$结束ip对应整数值、二级索引key#起始ip对应整数值$结束ip对应整数值,索引的排序序号为key;符号|、#、$均表示代码索引内部信息分隔符;步骤sb.3:对于ipv6,分别将起始ip、结束ip的首段整数值组织成一级ip信息索引,存储到一级ip信息索引池;在所述一级ip信息索引池中,索引的key分别为起始ip、结束ip首段整数值,索引的value为起始ip首段整数值$结束ip首段整数值,索引的排序序号为key;将起始ip、结束ip中段整数值组织成二级ip信息索引,存储到对应的二级ip信息索引池;在所述二级ip信息索引池中,二级ip信息索引池名称中包含起始ip首段整数值,起始ip中段整数值信息,索引的key分别为起始ip中段整数值、结束ip中段整数值,索引的value值为二级索引key|起始ip中段整数值$结束ip中段整数值,索引的排序序号为key;将起始ip及结束ip尾段整数值组织成三级ip信息索引,存储到对应的三级ip信息索引池;在所述三级ip信息索引池中,三级ip信息索引池名称中含起始ip中段ip整数值、起始ip尾段整数值信息,索引的key分别为起始ip尾段整数值,索引的value值分别为完整的归属信息,索引的排序序号为key。3.根据权利要求2所述的基于散列式多级缓存索引的ip地址离线数据匹配方法,其特征在于,所述步骤sd包括如下步骤:步骤sd.1:对需要匹配的ip信息进行自动识别ipv4、ipv6;步骤sd.2:对于ipv4,将ip前三段转换成整数值,在一级ip信息索引池中检索排序号第一个小于等于该整数值的二级ip信息索引;
若未查找到二级ip信息索引,则到二级ip信息索引池查找跨段ip信息索引,获取到二级ip信息索引值;使用二级ip信息索引到对应二级ip信息索引池,获取归属信息;步骤sd.3:对于ipv6,将ipv6进行全ip补全,形成补全后的全ipv6信息;步骤sd.4:将所述全ipv6信息进行转换,获得ipv6的首段整数值、中段整数值、尾段整数值;使用首段整数值到一级ip信息索引池检索排序号第一个小于等于该首段整数值的二级ip信息索引;使用中段整数值到对应的二级ip信息索引池检索三级ip信息索引值;使用尾段整数值到对应三级ip信息索引池,检索归属信息。4.根据权利要求3所述的基于散列式多级缓存索引的ip地址离线数据匹配方法,其特征在于,在所述步骤sa中,采用多并发方式分片获取ip地址信息离线数据;存储时同步对各级缓存索引根据排序序号从小到大序号进行排序;在所述步骤sb中,根据索引存储模型散列式存储缓存,其中,在所述索引存储模型中,每级索引的value值存储该段下一级索引所有起始索引及结束索引。5.一种基于散列式多级缓存索引的ip地址离线数据匹配系统,其特征在于,包括:模块ma:获取ip地址信息离线数据;模块mb:将所述ip地址信息离线数据每条记录的ip信息,缓存预热到散列目标ip信息索引池;其中,对ip信息进行分段拆分,按不同的ip段存储为不同级别的目标ip信息索引池;模块mc:根据实时交易中需要匹配的ip信息,实时通知ip检索引擎针对已经完成预热的目标ip信息索引池,索引ip归属信息;其中,所述ip检索引擎对需要匹配的ip信息进行拆分,到对应的目标ip信息索引池进行检索。6.根据权利要求5所述的基于散列式多级缓存索引的ip地址离线数据匹配系统,其特征在于,所述模块mb包括如下模块:模块mb.1:将所述ip地址信息离线数据,进行ipv4、ipv6的区分;模块mb.2:对于ipv4,分别将起始ip、结束ip前两段组织成一级ip信息索引,存储到一级ip信息索引池;在所述一级ip信息索引池中,索引的key为ip前两段对应整数值,索引的value值为该段ip段起始ip对应整数值$该段ip段结束ip对应整数值,索引的排序序号为key;将完整的ip信息存储到二级ip信息索引池,二级ip信息索引池的命名包含起始ip对应整数值、结束ip对应整数值信息;在所述二级ip信息索引池中,索引的key分别为完整的起始ip、结束ip对应整数值,索引的value值为完整的归属信息,索引的排序序号为key;若起始ip、结束ip存在跨段,则将起始ip及结束ip存储到跨段ip信息索引池;在所述跨段ip信息索引池中,索引的key分别为完整的起始ip及结束ip对应整数值,索引的value值分别为二级索引key|起始ip对应整数值$结束ip对应整数值、二级索引key#起始ip对应整数值$结束ip对应整数值,索引的排序序号为key;符号|、#、$均表示代码索引内部信息分隔符;模块mb.3:对于ipv6,分别将起始ip、结束ip的首段整数值组织成一级ip信息索引,存储到一级ip信息索引池;在所述一级ip信息索引池中,索引的key分别为起始ip、结束ip首段整数值,索引的value为起始ip首段整数值$结束ip首段整数值,索引的排序序号为key;将起始ip、结束ip中段整数值组织成二级ip信息索引,存储到对应的二级ip信息索引
池;在所述二级ip信息索引池中,二级ip信息索引池名称中包含起始ip首段整数值,起始ip中段整数值信息,索引的key分别为起始ip中段整数值、结束ip中段整数值,索引的value值为二级索引key|起始ip中段整数值$结束ip中段整数值,索引的排序序号为key;将起始ip及结束ip尾段整数值组织成三级ip信息索引,存储到对应的三级ip信息索引池;在所述三级ip信息索引池中,三级ip信息索引池名称中含起始ip中段ip整数值、起始ip尾段整数值信息,索引的key分别为起始ip尾段整数值,索引的value值分别为完整的归属信息,索引的排序序号为key。7.根据权利要求6所述的基于散列式多级缓存索引的ip地址离线数据匹配系统,其特征在于,所述模块md包括如下模块:模块md.1:对需要匹配的ip信息进行自动识别ipv4、ipv6;模块md.2:对于ipv4,将ip前三段转换成整数值,在一级ip信息索引池中检索排序号第一个小于等于该整数值的二级ip信息索引;若未查找到二级ip信息索引,则到二级ip信息索引池查找跨段ip信息索引,获取到二级ip信息索引值;使用二级ip信息索引到对应二级ip信息索引池,获取归属信息;模块md.3:对于ipv6,将ipv6进行全ip补全,形成补全后的全ipv6信息;模块md.4:将所述全ipv6信息进行转换,获得ipv6的首段整数值、中段整数值、尾段整数值;使用首段整数值到一级ip信息索引池检索排序号第一个小于等于该首段整数值的二级ip信息索引;使用中段整数值到对应的二级ip信息索引池检索三级ip信息索引值;使用尾段整数值到对应三级ip信息索引池,检索归属信息。8.根据权利要求7所述的基于散列式多级缓存索引的ip地址离线数据匹配系统,其特征在于,在所述模块ma中,采用多并发方式分片获取ip地址信息离线数据;存储时同步对各级缓存索引根据排序序号从小到大序号进行排序;在所述模块mb中,根据索引存储模型散列式存储缓存,其中,在所述索引存储模型中,每级索引的value值存储该段下一级索引所有起始索引及结束索引。9.一种存储有计算机程序的计算机可读存储介质,其特征在于,所述计算机程序被处理器执行时实现权利要求1至4中任一项所述的基于多级缓存索引的ip地址离线数据匹配方法的步骤。10.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至4中任一项所述的基于多级缓存索引的ip地址离线数据匹配方法的步骤。
技术总结
本发明提供了一种基于散列式多级缓存索引的IP地址离线数据匹配方法和系统,包括:获取IP地址信息离线数据;将所述IP地址信息离线数据每条记录的IP信息,缓存预热到目标IP信息索引池;其中,对IP信息进行分段拆分,按不同的IP段存储为不同级别的目标IP信息索引池;根据实时交易中需要匹配的IP信息,实时通知IP检索引擎针对已经完成预热的目标IP信息索引池,索引IP归属信息;其中,所述IP检索引擎对需要匹配的IP信息进行拆分,到对应的目标IP信息索引池进行检索。本发明模块之间有机结合,并且结合快速索引检索法,实现以毫秒级IP归属匹配能力,完成在线实时交易领域相关实时IP归属识别功能。功能。功能。
技术研发人员:丘贤文 雷斌 牟坤林
受保护的技术使用者:兴业数字金融服务(上海)股份有限公司
技术研发日:2022.12.15
技术公布日:2023/9/22
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
航空商城 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/
上一篇:一种全面平整的钢材校直装置的制作方法 下一篇:一种航空发动机挠曲变形计算方法与流程