掌桥专利:专业的专利平台
掌桥专利
首页

数据信息的推送方法、装置、计算机设备及存储介质

文献发布时间:2023-06-19 11:29:13


数据信息的推送方法、装置、计算机设备及存储介质

技术领域

本申请涉及数据处理技术领域,尤其涉及一种数据消息的推送方法、装置、计算机设备及存储介质。

背景技术

个性化数据信息是根据用户的浏览兴趣来向用户推荐相关的数据信息,可以有效地提高用户体验,让用户更容易接受,避免了数据信息推送中无效信息对于带宽和网络流量的浪费,提高了数据信息推送的效率。

目前,通过确定用户ID是否在一个集合中实现数据信息的推荐,但是由于该集合中包含大量的数据,通过该集合确认用户ID是否为该集合中的数据会占用较多的查询时间,因此向用户推送数据消息的效率较低。

发明内容

本申请实施例提供一种数据信息的推送方法、装置、计算机设备及存储介质,用于提高数据消息的推送效率。

本发明实施例提供一种数据信息的推送方法,所述方法包括:

接收数据消息推送请求,所述数据消息推送请求中包含待推送用户标识和待推送数据消息;

对所述待推送用户标识进行哈希计算得到哈希值;

通过所述哈希值确定对应的布隆过滤器,通过所述布隆过滤器确定所述待推送用户标识是否存在对应的集合中;不同的哈希值对应不同的布隆过滤器;

若所述待推送用户标识在所述集合中,则向所述待推送用户标识的用户推送所述数据消息。

本发明实施例提供一种数据信息的推送装置,所述装置包括:

接收模块,用于接收数据消息推送请求,所述数据消息推送请求中包含待推送用户标识和待推送数据消息;

计算模块,用于对所述待推送用户标识进行哈希计算得到哈希值;

确定模块,通过所述哈希值确定对应的布隆过滤器,通过所述布隆过滤器确定所述待推送用户标识是否存在对应的集合中;不同的哈希值对应不同的布隆过滤器;

推送模块,用于若所述待推送用户标识在所述集合中,则向所述待推送用户标识的用户推送所述数据消息。

一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述数据信息的推送方法。

一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述数据信息的推送方法。

本发明提供一种数据信息的推送方法、装置、计算机设备及存储介质,首先接收数据消息推送请求,所述数据消息推送请求中包含待推送用户标识和待推送数据消息;对所述待推送用户标识进行哈希计算得到哈希值;通过所述哈希值确定对应的布隆过滤器,通过所述布隆过滤器确定所述待推送用户标识是否存在对应的集合中;不同的哈希值对应不同的布隆过滤器;若所述待推送用户标识在所述集合中,则向所述待推送用户标识的用户推送所述数据消息。与目前通过查询一个集合中的用户ID实现数据消息的推送相比,本发明在接收到数据消息推送请求之后,根据请求中待推送用户标识确定对应的布隆过滤器,然后根据该布隆过滤器查询待推送用户标识是否在对应的集合中,以此实现数据消息的推送,由于本发明中不同的哈希值对应不同的布隆过滤器,即本发明可依据布隆过滤器并发执行查询待推送用户标识的任务,从而通过本发明可以提高数据消息的推送效率。

附图说明

图1为本申请第一实施例提供的数据信息的推送方法流程图;

图2为本申请第二实施例提供的数据信息的推送方法流程图;

图3为本申请一个实施例提供的数据信息的推送装置的结构框图;

图4为本申请一个实施例提供的计算机设备的一示意图。

具体实施方式

为了更好的理解上述技术方案,下面通过附图以及具体实施例对本申请实施例的技术方案做详细的说明,应当理解本申请实施例以及实施例中的具体特征是对本申请实施例技术方案的详细的说明,而不是对本申请技术方案的限定,在不冲突的情况下,本申请实施例以及实施例中的技术特征可以相互组合。

第一实施例

请参阅图1,所示为本发明第一实施例当中的数据信息的推送方法,所述方法具体包括步骤S10-步骤S40:

步骤S10,接收数据消息推送请求,所述数据消息推送请求中包含待推送用户标识和待推送数据消息。

其中,待推送用户标识即需要推送数据消息用户的用户标识,具体可以通过OAID(广告标识符)表示用户标识。待推送数据消息具体可以为文本消息、语音消息、图片消息、视频消息等,本发明实施例不做具体限定。

步骤S20,对所述待推送用户标识进行哈希计算得到哈希值。

需要说明的是,在对待推送用户标识进行哈希计算时,可以根据布隆过滤器的数量设置散列表长度,如布隆过滤器的数量为16,则将散列表长度设置为16,这样经过散列函数h(x)=x mod M(M为散列表长度)计算后,哈希值的取值范围为0-15,通过0-15标识对应的布隆过滤器。

步骤S30,通过所述哈希值确定对应的布隆过滤器,通过所述布隆过滤器确定所述待推送用户标识是否存在对应的集合中。

其中,不同的哈希值对应不同的布隆过滤器,每个布隆过滤器都对应有一个集合,该集合中存储有用户标识。不同的布隆过滤器的集合中的元素是不同的,且集合中的用户标识同样是根据哈希算法确定的。

对于大量的用户标识,需要将这些用户标识分配到对应的布隆过滤器的集合中,若存在两个布隆过滤器分别为布隆过滤器1和布隆过滤器2,则对每个用户标识进行哈希计算得到哈希值,若哈希值为0,则将用户标识存储到布隆过滤器1对应的集合中;若哈希值为1,则将用户标识存储到布隆过滤器2对应的集合中。

步骤S40,若所述待推送用户标识在所述集合中,则向所述待推送用户标识的用户推送所述数据消息。

本发明提供一种数据信息的推送方法,首先接收数据消息推送请求,所述数据消息推送请求中包含待推送用户标识和待推送数据消息;对所述待推送用户标识进行哈希计算得到哈希值;通过所述哈希值确定对应的布隆过滤器,通过所述布隆过滤器确定所述待推送用户标识是否存在对应的集合中;不同的哈希值对应不同的布隆过滤器;若所述待推送用户标识在所述集合中,则向所述待推送用户标识的用户推送所述数据消息。与目前通过查询一个集合中的用户ID实现数据消息的推送相比,本发明在接收到数据消息推送请求之后,根据请求中待推送用户标识确定对应的布隆过滤器,然后根据该布隆过滤器查询待推送用户标识是否在对应的集合中,以此实现数据消息的推送,由于本发明中不同的哈希值对应不同的布隆过滤器,即本发明可依据布隆过滤器并发执行查询待推送用户标识的任务,从而通过本发明可以提高数据消息的推送效率。

第二实施例

请参阅图2,所示为本发明第二实施例当中的数据信息的推送方法,所述方法包括:

步骤S01,接收数据消息推送请求,所述数据消息推送请求中包含待推送用户标识和待推送数据消息。

步骤S02,对所述待推送用户标识进行哈希计算得到哈希值。

其中,步骤S01和步骤S02与实施例一中对应步骤内容相同,本实施例在此不再赘述。

步骤S03,根据预置映射表确定所述哈希值确定对应的物理设备。

其中,所述预置映射表中存储有不同哈希值分别对应的物理设备。需要说明的是,物理设备的个数具体可以根据布隆过滤器的数量、布隆过滤器中集合内的用户标识的数量确定。例如,若存在16个布隆过滤器,则可以设置4个物理设备,物理设备1用于处理0-3号布隆过滤器、物理设备2用于处理4-7号布隆过利器、物理设备3用于处理8-11号布隆过滤器,物理设备4用于处理12-15号布隆过滤器,然后将上述物理设备与布隆过滤器(哈希值)的对应关系存储到预置映射表中。

步骤S04,将所述待推送用户标识发送给所述物理设备,通过所述物理设备中的布隆过滤器确定所述待推送用户标识是否存在对应的集合中。

在本发明提供的一个实施例中,所述通过所述物理设备中的布隆过滤器确定所述待推送用户标识是否存在对应的集合中,包括:

步骤S041,根据所述哈希值确定所述物理设备中对应的布隆过滤器。

步骤S042,根据所述物理设备中对应的布隆过滤器确定所述待推送用户标识是否存在对应的集合中。

例如,对待推送用户标识进行哈希计算得到哈希值为3,然后根据预置映射表中哈希值与物理设备的对应关系可知哈希值3对应物理设备1,则将待推送用户标识发送给物理设备1,由于物理设备1中包含4个布隆过滤器(0-3),因此还需要根据待推送用户标识的哈希值确定对应的布隆过滤器,在例中由于待推送用户标识的哈希值为3,因此对应的布隆过滤器为2,即通过布隆过滤器2查找集合中是否存在待推送用户标识。

步骤S05,若所述待推送用户标识在所述集合中,则向所述待推送用户标识的用户推送所述数据消息。

本发明实施例提供一种数据消息的推送方法,首先对待推送用户标识进行哈希计算得到哈希值,然后根据预置映射表确定所述哈希值确定对应的物理设备,并将所述待推送用户标识发送给所述物理设备,通过所述物理设备中的布隆过滤器确定所述待推送用户标识是否存在对应的集合中。即本发明通过多个物理设备多个布隆过滤器并行查询待推送用户标识,从而通过本发明可提高数据的查询效率,进而提高数据信息的推送效率。

在本发明提供的一个实施例中,为了始终保持数据的查询效率,所述方法还包括:

1、若在预置时间内接收的数据消息推送请求的数量超过第一预置数值,则增加新的所述物理设备处理所述数据消息推送请求;

其中,第一预置数值可以根据多个物理设备在预置时间内并行处理的最大推送请求的数量确定,即本发明在确定预置时间内接收的数据消息推送请求超过所有物理设备并行处理的最大请求数量之后,需要增加新的物理设备来处理数据消息推送请求。

2、将处理所述数据消息推送请求最多的物理设备中的一个或多个布隆过滤器迁移到新增加的物理设备中;

需要说明的是,本实施例具体可以根据在预置时间内接收的数据消息推送请求的数量确定增加的物理设备数量,具体可以增加1个物理设备、2个物理设备或是5个物理设备等,本发明实施例不做具体限定。

例如,增加一个物理设备A,从处理数据消息最多的物理设备中选择一个布隆过滤器迁移到物理设备A中。又如,增加一个物理设备B和物理设备C,则从处理数据消息排名在前的物理设备中选择一个或多个布隆过滤器迁移到物理设备B和物理设备C中,如将处理数据消息排名第一的物理设备中的一个布隆过滤器迁移到物理设备B中,将处理数据消息排名第二的物理设备中的一个布隆过滤器迁移到物理设备C中。

3、修改所述预置映射表中的增加物理设备对应的哈希值。

在本发明实施例中,在成功将布隆过滤器迁移到新增的物理设备中后,需要修改预置映射表中新增物理设备对应的哈希值。如新增物理设备之前,预置映射表中包含2个物理设备,物理设备1和物理设备2,物理设备1对应布隆过滤器0(哈希值0)和布隆过滤器1(哈希值1),物理设备2对应布隆过滤器2(哈希值2)和布隆过滤器3(哈希值3),新增一个物理设备3之后,将物理设备1中的布隆过滤器1迁移到布隆过滤器3中。然后修改预置映射表中物理设备对应的哈希值,修改的预置映射表为:物理设备1对应布隆过滤器0(哈希值0)、物理设备2对应布隆过滤器2(哈希值2)和布隆过滤器3(哈希值3)、物理设备3对应布隆过滤器1(哈希值1)。

对于本发明实施例,为了平衡各物理设备处理数据消息推送请求的数量,还可每隔一段时间获取一次所有物理设备处理的推送请求数量,然后可以根据各物理设备处理推送请求的数量,调节物理设备之间的布隆过滤器,并在调节完成之后修改预置映射表中物理设备与哈希值的对应关系。例如,存在物理设备1、物理设备2、物理设备3和物理设备4,每个物理设备中包含3个布隆过滤器,若检测发现物理设备1处理的推送请求的数量超过预置数值,则可将物理设备1中的一个布隆过滤器迁移至处理推送请求最少的物理设备4中,然后修改预置映射表中哈希值(布隆过滤器)与物理设备的对应关系。

在本发明提供的一个实施例中,为了减少占用的物理设备资源,所述方法还包括:

1、若在预置时间内接收的数据消息推送请求的数量少于第二预置数值,则将处理所述数据消息推送请求最少的物理设备中的所有多个布隆过滤器迁移到其他的物理设备中;

其中,第二预置数值具体可根据所有物理设备预置时间内并行处理推送请求的总量进行设定,如将第二预置数值设置为并行处理推送请求的总量的60%,如果第一这个数值,则将处理数据消息推送请求最少的物理设备中的所有多个布隆过滤器迁移到其他的物理设备中。

2、修改所述预置映射表中的物理设备对应的哈希值。

例如,存在物理设备1、物理设备2、物理设备3和物理设备4,每个物理设备中包含3个布隆过滤器,若在预置时间内接收的数据消息推送请求的数量少于第二预置数值,则将处理所述数据消息推送请求最少的物理设备4中的3个布隆过滤器平均迁移到其他的物理设备中,然后删除物理设备4,并修改预置映射表中的物理设备对应的哈希值,以此减少占用的物理设备资源。

应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。

在一实施例中,提供一种数据信息的推送装置,该数据信息的推送装置与上述实施例中数据信息的推送方法一一对应。如图3所示,所述数据信息的推送装置各功能模块详细说明如下所示:

接收模块10,用于接收数据消息推送请求,所述数据消息推送请求中包含待推送用户标识和待推送数据消息;

计算模块20,用于对所述待推送用户标识进行哈希计算得到哈希值;

确定模块30,通过所述哈希值确定对应的布隆过滤器,通过所述布隆过滤器确定所述待推送用户标识是否存在对应的集合中;不同的哈希值对应不同的布隆过滤器;

推送模块40,用于若所述待推送用户标识在所述集合中,则向所述待推送用户标识的用户推送所述数据消息。

进一步的,所述装置还包括:

所述确定模块30,还用于根据预置映射表确定所述哈希值确定对应的物理设备;所述预置映射表中存储有不同哈希值分别对应的物理设备;

发送模块50,用于将所述待推送用户标识发送给所述物理设备;

所述推送模块40,还用于通过所述物理设备中的布隆过滤器确定所述待推送用户标识是否存在对应的集合中。

所述确定模块30,具体用于根据所述哈希值确定所述物理设备中对应的布隆过滤器;根据所述物理设备中对应的布隆过滤器确定所述待推送用户标识是否存在对应的集合中。

进一步的,所述装置还包括:

增加模块60,用于若在预置时间内接收的数据消息推送请求的数量超过第一预置数值,则增加新的所述物理设备处理所述数据消息推送请求;

迁移模块70,具体用于将处理所述数据消息推送请求最多的物理设备中的一个或多个布隆过滤器迁移到新增加的物理设备中;

修改模块80,用于修改所述预置映射表中的增加物理设备对应的哈希值。

所述迁移模块70,还用于若在预置时间内接收的数据消息推送请求的数量少于第二预置数值,则将处理所述数据消息推送请求最少的物理设备中的所有多个布隆过滤器迁移到其他的物理设备中;

所述修改模块80,用于修改所述预置映射表中的物理设备对应的哈希值。

关于数据信息的推送装置的具体限定可以参见上文中对于数据信息的推送方法的限定,在此不再赘述。上述设备中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。

在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图4所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种数据信息的推送方法。

在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:

接收数据消息推送请求,所述数据消息推送请求中包含待推送用户标识和待推送数据消息;

对所述待推送用户标识进行哈希计算得到哈希值;

通过所述哈希值确定对应的布隆过滤器,通过所述布隆过滤器确定所述待推送用户标识是否存在对应的集合中;不同的哈希值对应不同的布隆过滤器;

若所述待推送用户标识在所述集合中,则向所述待推送用户标识的用户推送所述数据消息。

在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:

接收数据消息推送请求,所述数据消息推送请求中包含待推送用户标识和待推送数据消息;

对所述待推送用户标识进行哈希计算得到哈希值;

通过所述哈希值确定对应的布隆过滤器,通过所述布隆过滤器确定所述待推送用户标识是否存在对应的集合中;不同的哈希值对应不同的布隆过滤器;

若所述待推送用户标识在所述集合中,则向所述待推送用户标识的用户推送所述数据消息。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。

所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。

以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。

相关技术
  • 数据信息的推送方法、装置、计算机设备及存储介质
  • 基于大数据信息推送方法、装置、计算机设备及存储介质
技术分类

06120112941402