一种基于DFA算法的卡bin匹配方法及系统技术方案

技术编号:36749417 阅读:38 留言:0更新日期:2023-03-04 10:34
本发明专利技术提出了一种基于DFA算法的卡bin匹配方法及系统,涉及互联网技术领域。包括构建卡bin库,将数据库卡bin信息进行本地缓存;并存储到本地缓存中,服务启动初始化时,先查询数据库卡bin信息数据,得到list集合;遍历集合取其中的卡bin作为key,实体数据作为value;bin大于等于6位的截取前6位作为key,小于6位的直接作为key;先判断是否有key,当无key时将新建list集合作为value,按卡bin长度倒序放入卡bin词库;当有key时把卡bin数据放入list集合,按卡bin长度倒序存入卡bin词库。实现精准高效匹配卡bin,避免去除数据库暴力查询的问题。题。题。

【技术实现步骤摘要】
一种基于DFA算法的卡bin匹配方法及系统


[0001]本专利技术涉及互联网
,具体而言,涉及一种基于DFA算法的卡bin匹配方法及系统。

技术介绍

[0002]随着互联网的飞速发展和网民数量的日益增多,互联网高潮来临,中国网络购物的用户规模不断上升。由于互联网的普及,网络购物的优点更加突出,日益成为一种重要的购物形式。以网络购物、网上支付和旅行预订为代表的商务类应用持续快速增长,并引领其他互联网应用发展,成为互联网发展的突出特点。支付绑卡成为购物的必备条件,在交易链路中,通过一张银行卡卡号来识别这张银行卡所属发卡机构,以及通过卡bin走不同的卡清算组织是基本的需求。在单模式匹配算法中,比较经典的有:BF算法、KMP算法和BM算法等;在多模式匹配算法中,比较经典的有:AC算法、CW算法和WM算法等,这些算法存在时间复杂度高、实际应用中匹配速度慢、灵活性差和实际应用困难等问题。
[0003]现有技术针对卡号查询卡bin,常见的问题有如下三个方面:a.大量查询:在现有日活跃一千多万查询的背景下,大量的访问数据库,频繁连接和关闭数据库,这样会导致IO访问次数太频繁,内存消耗过高,机器负载压力增大。b.效率低下:数据库很容易成为系统性能的一个瓶颈,单机存储容量,IO和CPU处理能力都有限,当单表的数据量达到1000W或100G以后,库表的增删改查操作面临着性能大幅下降的问题。C.命中率低:由于卡号数据量达到一亿多,而匹配的卡bin数据只有两万多,使用卡号作为redis的key值缓存会导致缓存命中概率低,而通常来讲,缓存的命中率越高则表示使用缓存的收益越高,应用的性能越好(响应时间越短、吞吐量越高),抗并发的能力越强。
[0004]目前,需要一种基于DFA算法的卡bin匹配方法,使其能够实现精准高效匹配卡bin,避免去除数据库暴力查询的问题。

技术实现思路

[0005]本专利技术的目的在于提供一种基于DFA算法的卡bin匹配方法,其能够通过卡bin数据集合构建卡bin词库对卡号进行DFA算法匹配,从而实现基于在亿级数据量模式下的卡号下,精准高效匹配卡bin,避免去除数据库暴力查询的问题。
[0006]本专利技术的另一目的在于提供一种基于DFA算法的卡bin匹配系统,其能够通过卡bin数据集合构建卡bin词库对卡号进行DFA算法匹配,从而实现基于在亿级数据量模式下的卡号下,精准高效匹配卡bin,避免去除数据库暴力查询的问题。
[0007]本专利技术的实施例是这样实现的:
[0008]第一方面,本申请实施例提供一种基于DFA算法的卡bin匹配方法,其包括如下步骤,S1确定有穷自动机构建阶段:构建卡bin库,将数据库卡bin信息进行本地缓存;S2并存储到本地缓存中,构建卡bin词库:a.服务启动初始化时,先查询数据库卡bin信息数据,得到list集合;b.遍历list集合,取其中的卡bin作为key,实体数据作为value;c.对卡bin大
于等于6位的,截取前6位作为key,对卡bin小于6位的,直接作为key;d.先判断是否有key,当无key时,将新建list集合作为value,按卡bin长度倒序放入卡bin词库;当有key时,把卡bin数据放入list集合,按卡bin长度倒序存入卡bin词库;e.卡bin词库构建完毕;S3针对上游传过来的卡号在卡bin词库进行DFA命中匹配。
[0009]在本专利技术的一些实施例中,上述步骤S3中,具体包括如下步骤,a.首先卡号截取前6位作为key来进行DFA命中,key匹配命中成功,则取其value的list集合的第一条,卡号到达终止状态匹配成功,返回卡bin信息;b.截取前6位未命中时,截取前5位作为key来进行DFA命中,key匹配命中成功,则取其value的list集合的第一条,卡号到达终止状态匹配成功,返回卡bin信息;c.截取前5位未命中时,截取前4位作为key来进行DFA命中,key匹配命中成功,则取其value的list集合的第一条,卡号到达终止状态匹配成功,返回卡bin信息;d.截取前4位未命中时,截取前3位作为key来进行DFA命中,key匹配命中成功,则取其value的list集合的第一条,卡号到达终止状态匹配成功,返回卡bin信息;e.截取前3位未命中时,截取前2位作为key来进行DFA命中,key匹配命中成功,则取其value的list集合的第一条,卡号到达终止状态匹配成功,返回卡bin信息;否则卡bin信息不存在。
[0010]在本专利技术的一些实施例中,上述步骤S2中,构建卡bin库时,将卡bin作为一个独立的状态从前一个状态进行转移。
[0011]在本专利技术的一些实施例中,上述步骤S1中,具体包括如下步骤,采用DFA算法,包括一个有限状态集合以及多个从一个状态通向另一个状态的边,每条边上标记有一个符号,符号包含初态或者终态两种状态;除根节点外的每一个子节点都包含一个字符;从根节点到某一节点,路径上经过的字符连接起来,形成该节点对应的字符串;每个单词的公共前缀作为一个字符节点进行保存;确定有限状态自动机A表示为:A=(Q,Σ,δ,Q0,F),其中Q:一个非空有限的状态集合,Σ:一个输入字符表,δ:转移函数(Q,Σ)

>Q,Q0:开始状态,F:一个接受状态的集合
[0012]第二方面,本申请实施例提供一种基于DFA算法的卡bin匹配系统,基于第一方面任一项上述的方法实现。
[0013]相对于现有技术,本专利技术的实施例至少具有如下优点或有益效果:
[0014]1.本申请通过采用DFA算法确定有穷自动机,卡bin匹配的性能提高,由于只在服务启动时查询数据库的并缓存到本地,减少后续的大量访问数据库,性能得到大幅度提升;
[0015]2.被匹配的卡号文本为n,则时间复杂度为O(n2),后续即使卡号数量不断增加也不影响匹配效率。
附图说明
[0016]为了更清楚地说明本专利技术实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本专利技术的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
[0017]图1为本专利技术实施例1中步骤S2的原理图;
[0018]图2为本专利技术实施例1中步骤S3的原理图;
[0019]图3为本专利技术实施例1中步骤S1的原理图;
[0020]图4为本专利技术实施例2电子设备的原理图。
具体实施方式
[0021]为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。
[0022]因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于DFA算法的卡bin匹配方法,其特征在于,包括如下步骤,S1确定有穷自动机构建阶段:构建卡bin库,将数据库卡bin信息进行本地缓存;S2并存储到本地缓存中,构建卡bin词库:a.服务启动初始化时,先查询数据库卡bin信息数据,得到list集合;b.遍历list集合,取其中的卡bin作为key,实体数据作为value;c.对卡bin大于等于6位的,截取前6位作为key,对卡bin小于6位的,直接作为key;d.先判断是否有key,当无key时,将新建list集合作为value,按卡bin长度倒序放入卡bin词库;当有key时,把卡bin数据放入list集合,按卡bin长度倒序存入卡bin词库;e.卡bin词库构建完毕;S3针对上游传过来的卡号在卡bin词库进行DFA命中匹配。2.如权利要求1所述的一种基于DFA算法的卡bin匹配方法,其特征在于,步骤S3中,具体包括如下步骤,a.首先卡号截取前6位作为key来进行DFA命中,key匹配命中成功,则取其value的list集合的第一条,卡号到达终止状态匹配成功,返回卡bin信息;b.截取前6位未命中时,截取前5位作为key来进行DFA命中,key匹配命中成功,则取其value的list集合的第一条,卡号到达终止状态匹配成功,返回卡bin信息;c.截取前5位未命中时,截取前4位作为key来进行DFA命中,key匹配命中成功,则取其value的list集合的第一条,卡号到达终止状态匹配成功,返回卡bin信息;d.截取前4位未命中时,截取前3位作为key来进行DFA命中,key匹配命中成功,则取其value的list集合的...

【专利技术属性】
技术研发人员:董勇圣
申请(专利权)人:天翼电子商务有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1