关键字数据的传输方法及装置、存储介质、电子装置与流程

文档序号:24887363发布日期:2021-04-30 13:10阅读:91来源:国知局
关键字数据的传输方法及装置、存储介质、电子装置与流程

本发明涉及通信领域,具体而言,涉及一种关键字数据的传输方法及装置、存储介质、电子装置。



背景技术:

在相关技术中,日常使用远程字典服务的时候,根据使用量和并发量决定使用远程字典服务的模式,如果要应对高并发和大数据的访问需要使用远程字典服务的集群模式即远程字典服务的集群模式。随着业务的低时延和高并发的需求,通常使用远程字典服务的集群模式获取数据。

基于远程字典服务的集群模式,使用jedis客户端批量获取远程字典服务的数据,只能循环单个获取,获取之后进行组合,这种方式,在获取数据量小和并发较小的情况下是满足系统要求的,随着并发量和获取数据量不断增大,循环单个获取耗时过长,影响系统的性能。

针对相关技术中,客户端使用远程字典服务的集群模式获取数据时,只能循环单个获取数据等问题,尚未提出有效的解决方案。



技术实现要素:

本发明实施例提供了一种关键字数据的传输方法及装置、存储介质、电子装置,以至少解决相关技术中,客户端使用远程字典服务的集群模式获取数据时,只能循环单个获取数据等问题。

根据本发明的一个实施例,提供了一种关键字数据的传输方法,包括:接收客户端发送的数据请求,其中,所述数据请求用于从集群模式的主机中批量获取目标关键字数据,其中,将所述集群模式的每一个主机所对应的槽号段,主机ip地址,端口保存在treemap中;确定所述目标关键字数据中每一个关键字数据所对应的槽号,得到多个槽号;根据所述多个槽号从所述集群模式的主机中批量获取目标关键字数据,并将所述目标关键字数据传输至所述客户端。

在一个示例性的实施例中,确定所述目标关键字数据中每一个关键字数据所对应的槽号,得到多个槽号,包括:在关键字数据与槽号的对应关系中查找所述每一个关键字数据;在查找到的情况下,获取所述每一个关键字数据所对应的槽号,得到多个槽号。

在一个示例性的实施例中,根据所述多个槽号从所述集群模式的主机中批量获取目标关键字数据,包括:将所述目标关键字数据按照所述主机中所存储的关键字数据进行分类,得到多个类别的关键字数据,其中,所述多个类别中的每一个类别的关键字数据对应保存在同一主机;从所述多个槽号中确定所述多个类别的关键字数据所分别对应的槽号,得到多个槽号组;根据所述多个槽号组从所述集群模式的主机中批量获取目标关键字数据。

在一个示例性的实施例中,根据所述多个类别的关键字数据所分别对应的槽号从所述集群模式的主机中批量获取目标关键字数据的过程中,所述方法还包括:对于所述多个槽号组中的任一槽号组,从任一槽号组对应的主机上获取所述任一槽号组对应的关键字数据。

在一个示例性的实施例中,根据所述多个槽号从所述集群模式的主机中批量获取目标关键字数据,包括:确定所述集群模式的多个主机中所分别对应的部分关键字数据,其中,所述目标关键字数据包括:多个主机中所分别对应的部分关键字数据;基于pipeline的获取方式,根据所述多个槽号从所述集群模式的主机中批量获取目标关键字数据。

在一个示例性的实施例中,接收客户端发送的数据请求之前,所述方法还包括:获取所述集群模式中分布的所有主机,以及所述所有中每一个主机所对应的槽号段;将所述每一个主机所对应的槽号段,主机ip地址,端口保存在treemap中。

根据本发明的另一个实施例,还提供了一种关键字数据的传输装置,包括:接收模块,用于接收客户端发送的数据请求,其中,所述数据请求用于从集群模式的主机中批量获取目标关键字数据,其中,将所述集群模式的每一个主机所对应的槽号段,主机ip地址,端口保存在treemap中;确定模块,用于确定所述目标关键字数据中每一个关键字数据所对应的槽号,得到多个槽号;传输模块,用于根据所述多个槽号从所述集群模式的主机中批量获取目标关键字数据,并将所述目标关键字数据传输至所述客户端。

在一个示例性的实施例中,所述装置还包括:查找模块,用于在关键字数据与槽号的对应关系中查找所述每一个关键字数据;在查找到的情况下,获取所述每一个关键字数据所对应的槽号,得到多个槽号。

根据本发明的又一个实施例,还提供了一种计算机可读的存储介质,所述计算机可读的存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。

根据本发明的又一个实施例,还提供了一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一项方法实施例中的步骤。

通过本发明,接收客户端发送的数据请求,其中,所述数据请求用于从集群模式的主机中批量获取目标关键字数据,其中,将所述集群模式的每一个主机所对应的槽号段,主机ip地址,端口保存在treemap中;确定所述目标关键字数据中每一个关键字数据所对应的槽号,得到多个槽号;根据所述多个槽号从所述集群模式的主机中批量获取目标关键字数据,并将所述目标关键字数据传输至所述客户端,即根据关键字数据所对应的槽号批量获取集群模式的主机中目标关键字数据,通过上述技术方案,解决了相关技术中,客户端使用远程字典服务的集群模式获取数据时,只能循环单个获取数据等问题,进而可以大量的节省系统的响应时间,提高整个系统的吞吐能力,高并发下系统的响应能力提高。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1是本发明实施例的一种关键字数据的传输方法的计算机终端的硬件结构框图;

图2是根据本发明实施例的关键字数据的传输方法的流程图;

图3是根据本发明可选实施例的关键字数据的传输方法的流程图;

图4是根据本发明实施例的一种关键字数据的传输装置的结构框图。

具体实施方式

下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。

需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。

本申请实施例所提供的方法实施例可以在计算机终端,或者类似的运算装置中执行。以运行在计算机终端上为例,图1是本发明实施例的一种关键字数据的传输方法的计算机终端的硬件结构框图。如图1所示,计算机终端可以包括一个或多个(图1中仅示出一个)处理器102(处理器102可以包括但不限于微处理器mcu或可编程逻辑器件fpga等的处理装置)和用于存储数据的存储器104,在一个示例性实施例中,上述计算机终端还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述计算机终端的结构造成限定。例如,计算机终端还可包括比图1中所示更多或者更少的组件,或者具有与图1所示等同功能或比图1所示功能更多的不同的配置。

存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本发明实施例中的计算机终端的关键字数据的传输方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(networkinterfacecontroller,简称为nic),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(radiofrequency,简称为rf)模块,其用于通过无线方式与互联网进行通讯。

在本实施例中提供了一种关键字数据的传输方法,应用于上述计算机终端,图2是根据本发明实施例的关键字数据的传输方法的流程图,该流程包括如下步骤:

步骤s202,接收客户端发送的数据请求,其中,所述数据请求用于从集群模式的主机中批量获取目标关键字数据,其中,将所述集群模式的每一个主机所对应的槽号段,主机ip地址,端口保存在treemap中;

步骤s204,确定所述目标关键字数据中每一个关键字数据所对应的槽号,得到多个槽号;

步骤s206,根据所述多个槽号从所述集群模式的主机中批量获取目标关键字数据,并将所述目标关键字数据传输至所述客户端。

通过上述技术方案,接收客户端发送的数据请求,其中,所述数据请求用于从集群模式的主机中批量获取目标关键字数据,其中,将所述集群模式的每一个主机所对应的槽号段,主机ip地址,端口保存在treemap中;确定所述目标关键字数据中每一个关键字数据所对应的槽号,得到多个槽号;根据所述多个槽号从所述集群模式的主机中批量获取目标关键字数据,并将所述目标关键字数据传输至所述客户端,即根据关键字数据所对应的槽号批量获取集群模式的主机中目标关键字数据,通过上述技术方案,解决了相关技术中,客户端使用远程字典服务的集群模式获取数据时,只能循环单个获取数据等问题,进而可以大量的节省系统的响应时间,提高整个系统的吞吐能力,高并发下系统的响应能力提高。

在一个示例性的实施例中,接收客户端发送的数据请求之前,需要获取所述集群模式中分布的所有主机,以及所述所有中每一个主机所对应的槽号段;将所述每一个主机所对应的槽号段,主机ip地址,端口保存在treemap中。

也就是说,在系统初始化的时候,获取所述集群模式中分布的所有主机,以及主机对应的ip地址和端口,再获取每一个主机所对应的槽号段分布,最后将每一个主机所对应的槽号段,主机ip地址,端口保存在treemap中,具体地,槽号段,主机ip地址,端口保存在treemap中的方式可以采用任意一种treemap的保存方式,本发明实施例对此不进行限定。

确定所述目标关键字数据中每一个关键字数据所对应的槽号的方法有很多,在一个示例性的实施例中,在关键字数据与槽号的对应关系中查找所述每一个关键字数据;在查找到的情况下,获取所述每一个关键字数据所对应的槽号,得到多个槽号。

具体的,将关键字数据和与关键字数据对应的槽号保存至数据库中,接收到客户端发送的数据请求后,由于数据库中存在多个关键字数据,在关键字数据中查找到目标关键字数据中每一个关键字数据,并根据键字数据与槽号的对应关系,获取目标关键字数据中每一个关键字数据对应的槽号。

在一个示例性的实施例中,根据所述多个槽号从所述集群模式的主机中批量获取目标关键字数据,需要将所述目标关键字数据按照所述主机中所存储的关键字数据进行分类,得到多个类别的关键字数据,其中,所述多个类别中的每一个类别的关键字数据对应保存在同一主机;从所述多个槽号中确定所述多个类别的关键字数据所分别对应的槽号,得到多个槽号组;根据所述多个槽号组从所述集群模式的主机中批量获取目标关键字数据。

根据所述主机中所存储的关键字数据对目标关键字进行分类,将目标关键字分为多个类别的关键字数据,不同类别的关键字数据对应不同的主机,每一个类别的关键字数据对应保存在同一主机,根据多个类别的关键字数据分别对应的槽号确定多个槽号组,因每一个主机所对应的槽号段,主机ip地址,端口保存在treemap中,因此可以根据槽号组从主机中批量获取目标关键字数据。

在一个示例性的实施例中,根据所述多个类别的关键字数据所分别对应的槽号从所述集群模式的主机中批量获取目标关键字数据的过程中,对于所述多个槽号组中的任一槽号组,从任一槽号组对应的主机上获取所述任一槽号组对应的关键字数据。

需要说明的是,任一槽号组都对应一个主机,所以根据槽号组确定对应的主机,根据treemap中保存的主机所对应的槽号段,主机ip地址,端口,确定槽号组对应的主机上的关键字数据。

在一个示例性的实施例中,根据所述多个槽号从所述集群模式的主机中批量获取目标关键字数据,包括:确定所述集群模式的多个主机中所分别对应的部分关键字数据,其中,所述目标关键字数据包括:多个主机中所分别对应的部分关键字数据;基于pipeline的获取方式,根据所述多个槽号从所述集群模式的主机中批量获取目标关键字数据。

可以理解的是,使用pipeline的获取方式批量获取主机中槽号对应的目标关键字数据,进而可以大量节省循环获取的时间。

为了更好的理解上述关键字数据的传输方法的过程,以下结合可选实施例对上述关键字数据的传输方法流程进行说明,但不用于限定本发明实施例的技术方案。

图3是根据本发明可选实施例的关键字数据的传输方法的流程图,本发明可选实施例主要解决的是集群模式的远程字典服务,使用jedis-client客户端无法批量获取数据的问题,如图3所示,具体步骤如下:

步骤301:系统初始化;

其中,步骤s301还包括:

步骤s3011:获取集群模式远程字典服务的master分布主机;

步骤s3012:获取每个master主机对应的槽号分布;

步骤s3013:将每个主机对应的槽号段和主机ip和端口存储全局在treemap中。

步骤s302:客户端发送请求消息;

需要说明的是,客户端发送请求消息用于指示从集群模式的主机中批量获取key。

步骤s303:计算获取每个key所在集群模式远程字典服务的槽号;

步骤s304:根据槽号将所有的key根据主机分类使用treemap的floorentery进行分类;

步骤s305:根据分类结果,遍历槽号对应的主机;

步骤s306:使用pipleline批量获取每个主机上分布的key;

步骤s307:将结果返回至客户端。

需要说明的是,本发明可选实施例中使用的treemap为treemap对象类,其中判断每个key所在区间需要使用向上判断,即floorentry,进而可以提供区段内的key对应的数据获取。本发明可选实施例中使用了集群模式redis的pipeline获取每个主机上的内容,可以大量节省循环获取的时间。

通过本发明,接收客户端发送的数据请求,其中,所述数据请求用于从集群模式的主机中批量获取目标关键字数据,其中,将所述集群模式的每一个主机所对应的槽号段,主机ip地址,端口保存在treemap中;确定所述目标关键字数据中每一个关键字数据所对应的槽号,得到多个槽号;根据所述多个槽号从所述集群模式的主机中批量获取目标关键字数据,并将所述目标关键字数据传输至所述客户端,即根据关键字数据所对应的槽号批量获取集群模式的主机中目标关键字数据,通过上述技术方案,解决了相关技术中,客户端使用远程字典服务的集群模式获取数据时,只能循环单个获取数据等问题,进而可以大量的节省系统的响应时间,提高整个系统的吞吐能力,高并发下系统的响应能力提高。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。

在本实施例中还提供了一种关键字数据的传输装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。

图4是根据本发明实施例的一种关键字数据的传输装置的结构框图;如图4所示,包括:

接收模块40,用于接收客户端发送的数据请求,其中,所述数据请求用于从集群模式的主机中批量获取目标关键字数据,其中,将所述集群模式的每一个主机所对应的槽号段,主机ip地址,端口保存在treemap中;

确定模块42,用于确定所述目标关键字数据中每一个关键字数据所对应的槽号,得到多个槽号;

传输模块44,用于根据所述多个槽号从所述集群模式的主机中批量获取目标关键字数据,并将所述目标关键字数据传输至所述客户端。

通过本发明,接收客户端发送的数据请求,其中,所述数据请求用于从集群模式的主机中批量获取目标关键字数据,其中,将所述集群模式的每一个主机所对应的槽号段,主机ip地址,端口保存在treemap中;确定所述目标关键字数据中每一个关键字数据所对应的槽号,得到多个槽号;根据所述多个槽号从所述集群模式的主机中批量获取目标关键字数据,并将所述目标关键字数据传输至所述客户端,即根据关键字数据所对应的槽号批量获取集群模式的主机中目标关键字数据,通过上述技术方案,解决了相关技术中,客户端使用远程字典服务的集群模式获取数据时,只能循环单个获取数据等问题,进而可以大量的节省系统的响应时间,提高整个系统的吞吐能力,高并发下系统的响应能力提高。

在一个示例性的实施例中,上述装置还包括获取模块,用于在接收客户端发送的数据请求之前,获取所述集群模式中分布的所有主机,以及所述所有中每一个主机所对应的槽号段;将所述每一个主机所对应的槽号段,主机ip地址,端口保存在treemap中。

也就是说,在系统初始化的时候,获取所述集群模式中分布的所有主机,以及主机对应的ip地址和端口,再获取每一个主机所对应的槽号段分布,最后将每一个主机所对应的槽号段,主机ip地址,端口保存在treemap中。

在一个示例性的实施例中,查找模块,还用于在关键字数据与槽号的对应关系中查找所述每一个关键字数据;在查找到的情况下,获取所述每一个关键字数据所对应的槽号,得到多个槽号。

具体的,将关键字数据和与关键字数据对应的槽号保存至数据库中,接收到客户端发送的数据请求后,由于数据库中存在多个关键字数据,在关键字数据中查找到目标关键字数据中每一个关键字数据,并根据键字数据与槽号的对应关系,获取目标关键字数据中每一个关键字数据对应的槽号。

在一个示例性的实施例中,获取模块,还用于将所述目标关键字数据按照所述主机中所存储的关键字数据进行分类,得到多个类别的关键字数据,其中,所述多个类别中的每一个类别的关键字数据对应保存在同一主机;从所述多个槽号中确定所述多个类别的关键字数据所分别对应的槽号,得到多个槽号组;根据所述多个槽号组从所述集群模式的主机中批量获取目标关键字数据。

根据所述主机中所存储的关键字数据对目标关键字进行分类,将目标关键字分为多个类别的关键字数据,不同类别的关键字数据对应不同的主机,每一个类别的关键字数据对应保存在同一主机,根据多个类别的关键字数据分别对应的槽号确定多个槽号组,因每一个主机所对应的槽号段,主机ip地址,端口保存在treemap中,因此可以根据槽号组从主机中批量获取目标关键字数据。

在一个示例性的实施例中,获取模块,还用于根据所述多个类别的关键字数据所分别对应的槽号从所述集群模式的主机中批量获取目标关键字数据的过程中,对于所述多个槽号组中的任一槽号组,从任一槽号组对应的主机上获取所述任一槽号组对应的关键字数据。

需要说明的是,任一槽号组都对应一个主机,所以根据槽号组确定对应的主机,根据treemap中保存的主机所对应的槽号段,主机ip地址,端口,确定槽号组对应的主机上的关键字数据。

在一个示例性的实施例中,确定模块,还用于确定所述集群模式的多个主机中所分别对应的部分关键字数据,其中,所述目标关键字数据包括:多个主机中所分别对应的部分关键字数据;基于pipeline的获取方式,根据所述多个槽号从所述集群模式的主机中批量获取目标关键字数据。

可以理解的是,使用pipeline的获取方式批量获取主机中槽号对应的目标关键字数据。

本发明的实施例还提供了一种存储介质,该存储介质包括存储的程序,其中,上述程序运行时执行上述任一项的方法。

在一个示例性实施例中,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:

s1,接收客户端发送的数据请求,其中,所述数据请求用于从集群模式的主机中批量获取目标关键字数据,其中,将所述集群模式的每一个主机所对应的槽号段,主机ip地址,端口保存在treemap中;

s2,确定所述目标关键字数据中每一个关键字数据所对应的槽号,得到多个槽号;

s3,根据所述多个槽号从所述集群模式的主机中批量获取目标关键字数据,并将所述目标关键字数据传输至所述客户端。

在一个示例性实施例中,在本实施例中,上述存储介质可以包括但不限于:u盘、只读存储器(read-onlymemory,简称为rom)、随机存取存储器(randomaccessmemory,简称为ram)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。

本发明的实施例还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。

在一个示例性实施例中,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。

在一个示例性实施例中,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:

s1,接收客户端发送的数据请求,其中,所述数据请求用于从集群模式的主机中批量获取目标关键字数据,其中,将所述集群模式的每一个主机所对应的槽号段,主机ip地址,端口保存在treemap中;

s2,确定所述目标关键字数据中每一个关键字数据所对应的槽号,得到多个槽号;

s3,根据所述多个槽号从所述集群模式的主机中批量获取目标关键字数据,并将所述目标关键字数据传输至所述客户端。

在一个示例性实施例中,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。

显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,在一个示例性实施例中,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1