消息检测方法、装置、计算机设备和存储介质制造方法及图纸

技术编号:34423172 阅读:11 留言:0更新日期:2022-08-06 15:50
本申请涉及一种消息检测方法、装置、计算机设备和存储介质。所述方法包括:获取待检测消息,并确定当前用于进行前置检测的目标前置过滤器;通过所述目标前置过滤器中多于一个的第一映射函数分别对所述待检测消息进行处理,得到对应的第一映射值;基于所述目标前置过滤器中的位数组,查询各所述第一映射值分别在所述位数组中对应的目标位置;当基于各所述目标位置处的元素标记确定所述待检测消息非首次出现时,通过重过滤器中的第二映射函数对所述待检测消息进行处理,得到第二映射值;当从所述重过滤器中的所有历史映射值中查询到所述第二映射值时,确定所述待检测消息为重复消息。采用本方法能够保证消息检测的效率,并提高消息检测的准确性。高消息检测的准确性。高消息检测的准确性。

【技术实现步骤摘要】
消息检测方法、装置、计算机设备和存储介质


[0001]本申请涉及计算机
,特别是涉及一种消息检测方法、装置、计算机设备和存储介质。

技术介绍

[0002]随着计算机技术的发展,出现了各种通信技术,通过各种通信技术,发送端可以将消息发送至接收端。在通信过程中,发送端的消息发送至服务器,再通过服务器下发至接收端中。通常地,服务器需要对该消息进行检测,以判断该消息是否为重复的消息,若该消息为重复的消息则不下发至接收端中,若该消息不是重复的消息则下发至接收端中。
[0003]传统的消息检测方法,服务器将消息进行哈希处理,将处理结果与哈希图表中的所有节点进行比较,从而判断该消息是否为重复的消息。
[0004]然而,目前的消息检测方法,服务器针对每个消息进行哈希处理时,均需要遍历哈希图表中的所有节点,存在检测的效率低的问题。

技术实现思路

[0005]基于此,有必要针对上述技术问题,提供一种能够提高消息去重检测效率的消息检测方法、装置、计算机设备和存储介质。
[0006]一种消息检测方法,所述方法包括:
[0007]获取待检测消息,并确定当前用于进行前置检测的目标前置过滤器;
[0008]通过所述目标前置过滤器中多于一个的第一映射函数分别对所述待检测消息进行处理,得到对应的第一映射值;
[0009]基于所述目标前置过滤器中的位数组,查询各所述第一映射值分别在所述位数组中对应的目标位置;
[0010]当基于各所述目标位置处的元素标记确定所述待检测消息非首次出现时,通过重过滤器中的第二映射函数对所述待检测消息进行处理,得到第二映射值;
[0011]当从所述重过滤器中的所有历史映射值中查询到所述第二映射值时,确定所述待检测消息为重复消息。
[0012]一种消息检测装置,所述装置包括:
[0013]确定模块,用于获取待检测消息,并确定当前用于进行前置检测的目标前置过滤器;
[0014]第一映射模块,用于通过所述目标前置过滤器中多于一个的第一映射函数分别对所述待检测消息进行处理,得到对应的第一映射值;
[0015]查询模块,用于基于所述目标前置过滤器中的位数组,查询各所述第一映射值分别在所述位数组中对应的目标位置;
[0016]第二映射模块,用于当基于各所述目标位置处的元素标记确定所述待检测消息非首次出现时,通过重过滤器中的第二映射函数对所述待检测消息进行处理,得到第二映射
值;
[0017]所述确定模块,还用于当从所述重过滤器中的所有历史映射值中查询到所述第二映射值时,确定所述待检测消息为重复消息。
[0018]一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述的方法的步骤。
[0019]一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时实现上述的方法的步骤。
[0020]上述消息检测方法、装置、计算机设备和存储介质,通过目标前置过滤器中多于一个的第一映射函数分别对待检测消息进行处理,得到对应的第一映射值,基于目标前置过滤器中的位数组,查询各第一映射值分别在位数组中对应的目标位置,基于各目标位置处的元素标记可以快速地确定待检测消息是否非首次出现。当待检测消息为非首次出现时,表示该待检测消息可能为重复消息,则通过重过滤器进行进一步有针对性的准确地检测,具体可以是通过重过滤器中的第二映射函数对待检测消息进行处理得到第二映射值,从重过滤器中的所有历史映射值更准确地查询该第二映射值是否为重复消息,当从历史映射值中查询到该第二映射值时,确定待检测消息为重复消息。也就是说,通过目标前置过滤器和重过滤器对待检测消息进行协调处理,先采用位数组判断消息是否重复,可以排除掉绝大部分首次出现的消息。再对有可能是重复出现的消息进行更进一步的全面检测,既可以保证消息去重检测的效率,也可以提高消息去重检测的准确性。
附图说明
[0021]图1为一个实施例中消息检测方法的应用环境图;
[0022]图2为一个实施例中消息检测方法的流程示意图;
[0023]图3为一个实施例中查询待检测消息的各第一映射值在位数组的目标位置的示意图;
[0024]图4为一个实施例中第一前置过滤器和第二前置过滤器之间协调工作的示意图;
[0025]图5为相关技术中消息检测的示意图;
[0026]图6为相关技术中消息检测的示意图;
[0027]图7为一个实施例中消息检测方法的流程示意图;
[0028]图8为一个实施例中消息检测的时序图;
[0029]图9为一个实施例中消息检测装置的结构框图;
[0030]图10为一个实施例中计算机设备的内部结构图。
具体实施方式
[0031]为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
[0032]本申请提供的消息检测方法,可以应用于如图1所示的应用环境中。其中,发送终端102通过网络与服务器104进行通信,接收终端106通过网络与服务器104进行通信。发送终端102将待检测消息(待检测消息比如图1中示出的108“BBB”)发送至服务器104。服务器
104获取待检测消息,并确定当前用于进行前置检测的目标前置过滤器;通过目标前置过滤器中多于一个的第一映射函数分别对待检测消息进行处理,得到对应的第一映射值;基于目标前置过滤器中的位数组,查询各第一映射值分别在位数组中对应的目标位置;当基于各目标位置处的元素标记确定待检测消息非首次出现时,通过重过滤器中的第二映射函数对待检测消息进行处理,得到第二映射值;当从重过滤器中的所有历史映射值中查询到第二映射值时,确定待检测消息为重复消息。进一步地,当服务器104确定待检测消息首次出现时,则将待检测消息108下发给接收终端106。
[0033]其中,发送终端102、接收终端106均可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
[0034]在一个实施例中,如图2所示,提供了一种消息检测方法,以该方法应用于图1中的服务器为例进行说明,包括以下步骤:
[0035]步骤S202,获取待检测消息,并确定当前用于进行前置检测的目标前置过滤器。
[0036]待检测消息的形式并不限定,可以是文本消息、图片消息、音频消息、视频消息等其中的一种或者多种的组合。例如,待检测消息可以是一段文字,也可以是多张图片的集合,还可以是一段音频,还可以是一段文字以及一段音频的组合。
[0037]目标前置过滤器是当前用于对待检测消息进行前置检测的过滤器。目标前置过滤器可以是布隆过滤器(Bloom Filter)。布隆过滤器是一种空间效率很高的随机数据结构,利用位数组可以简洁地本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种消息检测方法,其特征在于,所述方法包括:获取待检测消息,并确定当前用于进行前置检测的目标前置过滤器;通过所述目标前置过滤器中多于一个的第一映射函数分别对所述待检测消息进行处理,得到对应的第一映射值;基于所述目标前置过滤器中的位数组,查询各所述第一映射值分别在所述位数组中对应的目标位置;当基于各所述目标位置处的元素标记确定所述待检测消息非首次出现时,通过重过滤器中的第二映射函数对所述待检测消息进行处理,得到第二映射值;当从所述重过滤器中的所有历史映射值中查询到所述第二映射值时,确定所述待检测消息为重复消息。2.根据权利要求1所述的方法,其特征在于,所述确定当前用于进行前置检测的目标前置过滤器,包括:在当前时间周期内,分别确定第一前置过滤器和第二前置过滤器的工作模式,并将所述工作模式为主模式的前置过滤器作为目标前置过滤器;其中,所述工作模式包括主模式和备模式,所述第一前置过滤器和所述第二前置过滤器每经过一个时间周期则会进行一次主模式和备模式的互换。3.根据权利要求2所述的方法,其特征在于,所述方法还包括:每当主模式的前置过滤器切换成备模式之后,对处于备模式的前置过滤器的位数组中存储的元素标记进行清理;清理后处于备模式的前置过滤器用于对首次出现的待检测消息的第一映射值进行映射处理。4.根据权利要求1所述的方法,其特征在于,所述方法还包括:当所有所述目标位置处的元素标记均为第一标记时,确定所述待检测消息非首次出现;当多于一个的所述目标位置处中存在一个目标位置的元素标记为第二标记时,确定所述待检测消息首次出现。5.根据权利要求1所述的方法,其特征在于,所述重过滤器包括多阶数据链,每阶数据链中均存储有至少一部分的历史映射值,且所有阶的数据链中存储的历史映射值共同构成所有的历史映射值,所述通过重过滤器中的第二映射函数对所述待检测消息进行处理,得到第二映射值之后,所述方法还包括:按照从所述多阶数据链中的初始阶数据链开始至最高阶数据链的顺序,依次从相应顺序所对应的数据链中查询所述第二历史映射值;当从所述多阶数据链中的其中一阶数据链中查询到所述第二历史映射值时,则确定从所述重过滤器中查询到所述第二映射值;当从所述多阶数据链中的所有阶数据链中均未查询到所述第二历史映射值时,则确定所述待检测消息首次出现。6.根据权利要求1所述的方法,其特征在于,所述方法还包括:针对所述待检测消息建立进程;所述通过重过滤器中的第二映射函数对所述待检测消息进行处理,得到第二映射值,包括:
通过所述进程访问所述重过滤器,并采用原子操作锁定所述进程,通过重过滤器中的第二映射函数对所述待检测消息进行处理,得到第二映射值。7.根据权利要求1至6中任一项所述的方法,其特征在于,所述方法还包括:当基于各所述目标位置处的元素标记确定所述待检测消息首次出现时,对所述待检测消息执行消息下发操作;或当从所述重过滤器中的所有历史映射值中...

【专利技术属性】
技术研发人员:袁浩陈路远王军王文松
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:

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

1