数据查询方法、客户端、服务器及计算机可读介质与流程

文档序号:16330600发布日期:2018-12-19 06:10阅读:220来源:国知局
数据查询方法、客户端、服务器及计算机可读介质与流程

本发明涉及计算机通信领域,具体涉及一种数据查询方法、客户端、服务器及计算机可读介质。

背景技术

随着计算机技术的不断发展,越来越多的电子产品(例如终端端或客户端)可以通过网络连接到服务器并访问服务器以获得目标资源。此时,服务器会依据客户端所提供的查询信息进行数据查询,并将所查询到的数据进行处理后作为处理结果返回给对应的客户端。

然而,随着来自不同的客户端的增加,这些不同的客户端所提供的查询信息也逐步增加,因此,要求服务器提供服务的数量会日益增多,由于服务器查询的过程一般为对相对应的数据库按照顺序查询,使得服务器负荷过重,从而造成服务器的工作效能因为查询的增加而降低,容易出现客户端短时间内无法查询到对应的数据并得到返回的处理结果的情况。



技术实现要素:

本发明正是基于上述问题,提出了一种数据查询方法、客户端、服务器及计算机可读介质,能够缓解并减轻服务器的负担,从而提高服务器的资源利用效率。

有鉴于此,本发明实施例第一方面提供了一种数据查询方法,该方法包括:

根据第一预设周期对主服务器中的数据进行缓存生成缓存数据;

接收至少一个客户端发送的至少一个查询任务;

去掉所述至少一个查询任务中重复的查询任务并生成第一查询任务清单;

确认所述第一查询任务清单中是否包括在所述缓存数据中具有查询结果的的第一查询任务;

若是,从所述缓存数据中获取所述第一查询任务的查询结果返回给所述至少一个客户端中提交所述第一查询任务的客户端;

若所述第一查询任务清单中包括在所述缓存数据中无查询结果的第二查询任务,则将所述第二查询任务发送给所述至少一个客户端向所述主服务器进行查询。

在一些可能设计中,在将所述第二查询任务发送给所述至少一个客户端向所述主服务器进行查询之后,还包括:接收所述至少一个客户端返回的对应所述第二查询任务的查询结果;将所述第二查询任务的查询结果返回所述至少一个客户端中提交所述第二查询任务的客户端。

在一些可能设计中,在接收所述至少一个客户端返回的对应所述第二查询任务的查询结果之后,还包括:将所述第二查询任务的查询结果存储到所述缓存数据。

在一些可能设计中,将所述第二查询任务发送给所述至少一个客户端向所述主服务器进行查询具体包括:将所述第二查询任务平均分配给所述至少一个客户端向所述主服务器进行查询,平均分配至每一个客户端的至少一个查询任务的数量小于或等于第一阈值;所述平均分配后的至少一个查询任务的数量的余数大于第二阈值则进行二次平均分配,所述平均分配后的余数小于或等于所述第二阈值则进行随机分配。

本发明实施例第二方面提供一种数据查询方法,包括:

向从服务器发送至少一个查询任务;

接收所述从服务器返回的第一查询任务的查询结果,所述第一查询任务为第一查询任务清单中包括在所述从服务器的缓存数据中具有查询结果的至少一个查询任务,所述第一查询任务清单为所述从服务器去掉所述至少一个查询任务中重复的查询任务生成的查询任务清单;

接收所述从服务器发送的第二查询任务,并将所述第二查询任务发送给主服务器进行查询,所述第二查询任务为在所述第一查询任务清单中没有包括在所述从服务器的缓存数据中具有查询结果的至少一个查询任务。

在一些可能设计中,在接收所述从服务器发送的第二查询任务,并将所述第二查询任务发送给主服务器进行查询之后,还包括:接收所述主服务器返回的所述第二查询任务的查询结果;将所述第二查询任务的查询结果发送给所述从服务器;接收所述从服务器返回的对应提交的所述第二查询任务的查询结果。

本发明实施例第三方面提供一种服务器,其特征在于,包括处理器、输入设备、输出设备和存储器,所述处理器、输入设备和存储器相互连接,其中,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行第一方面或第一方面的任意可能设计中的方法。

本发明实施例第四方面提供一种计算机可读存储介质,其特征在于,所述计算机存储介质有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行第一方面或第一方面的任意可能设计中的方法。

本发明实施例第五方面提供一种客户端,其特征在于,包括处理器、输入设备、输出设备和存储器,所述处理器、输入设备和存储器相互连接,其中,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行第二方面或第二方面的任意可能设计中的方法。

本发明实施例第六方面提供一种计算机可读存储介质,其特征在于,所述计算机存储介质有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行第二方面或第二方面的任意可能设计中的方法。

本发明实施例的技术方案通过根据预设周期对主服务器中的数据进行缓存生成缓存数据;接收至少一个客户端发送的至少一个查询任务;去掉所述至少一个查询任务中重复的查询任务并生成第一查询任务清单;确认所述第一查询任务清单中是否包括在所述缓存数据中具有查询结果的的第一查询任务;若是,从所述缓存数据中获取所述第一查询任务的查询结果返回给所述至少一个客户端中提交所述第一查询任务的客户端;若所述第一查询任务清单中包括在所述缓存数据中无查询结果的第二查询任务,则将所述第二查询任务发送给所述至少一个客户端向所述主服务器进行查询。本发明缓解并减轻了服务器的负担,从而提高服务器的资源利用效率。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来说,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

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

图1为本发明实施例提供的数据查询系统的系统架构示意图;

图2为本发明实施例提供的数据查询方法的示意性流程图;

图3为本发明实施例提供的一种客户端的示意性框图;

图4为本发明实施例提供的一种服务器的示意性框图;

图5为本发明实施例提供的一种客户端的结构示意图;

图6为本发明实施例提供的一种服务器的结构示意图;

图7为本发明实施例提供的一种数据查询系统的示意图;

图8为本发明另一实施例提供的实施例提供的数据查询系统的系统架构示意图;

图9为本发明另一实施例提供的数据查询方法的示意性流程图;

图10为本发明另一实施例提供的一种客户端的示意性框图;

图11为本发明另一实施例提供的一种服务器的示意性框图;

图12为本发明另一实施例提供的一种客户端的结构示意图;

图13为本发明另一实施例提供的一种服务器的结构示意图;

图14为本发明另一实施例提供的一种数据查询系统的示意图。

具体实施方式

需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和

“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。

还应当理解,在此本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。

还应当进一步理解,在本发明说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合及所有可能组合,并且包括这些组合。

如在本说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。

应理解,在本发明实施例中,客户端在本领域中也可以为终端,且所述客户端至少为一个。

本发明实施例的技术方案可以应用于法律数据查询系统中对法律数据进行查询,还可以不限于此。

具体实现中,本发明实施例中描述的客户端包括但不限于诸如移动电话、膝上型计算机或平板计算机之类的其它便携式设备。还应当理解的是,在本发明的某些实施例中,所述设备并非便携式通信设备。在本发明实施例描述的客户端还可以为手机、平板电脑等移动终端。

在接下来的讨论中,描述了包括显示器和输入设备的客户端。然而,应当理解的是,所述客户端可以包括诸如物理键盘、鼠标和/或控制杆的一个或多个其它物理用户接口设备。

应理解,所述客户端和从服务器可以是物理设备,也可以是设置于物理设备中的装置、单元或模块;另外,所述客户端和从服务器可以在同一物理设备上实现,也可以分别在不同的物理设备上实现。

下面将参见图1和图2并结合实施例来详细说明本发明。

图1示出了本发明实施例提供的数据查询系统的系统架构示意图。

如图1所示,所述数据查询系统包括:

客户端101,用于发送至少一个查询任务并接收所述至少一个查询任务的查询结果;

从服务器102,用于根据第一预设周期对主服务器中的数据进行缓存生成缓存数据,并从所述缓存数据中获取所述至少一个查询任务的至少部分查询结果;以及

主服务器103,用于接收至少一个查询任务并发送对应的至少一个查询任务的查询结果。

本发明实施例的技术方案可以应用于所述数据查询系统中。

图2示出了本发明实施例提供的数据查询方法的示意性流程图。

如图1和图2所示的一种数据查询方法包括:

步骤s1:从服务器102根据第一预设周期对主服务器103中的数据进行缓存生成缓存数据。

在本发明的一些实施例中,所述从服务器102可以定期的从主服务器103上的数据进行复制和缓存,通过所述主服务器103和所述从服务器102之间的数据复制和缓存,可以实现负载均衡,可以通过在所述主服务器103和所述从服务器102之间切分处理客户查询的负荷。

应理解,所述主服务器103和所述从服务器102包括于单服务器中的数据库管理系统。所述主服务器103连接于主数据库,且所述主数据库对至少一个查询任务的数据进行实时更新。所述从服务器102连接于从数据库,且所述从数据库的数据存储量小于所述主数据可的数据存储量,且所述从服务器102和所述从数据库无法进行实时更新。关于服务器和数据库之间的关系,可以为所述主服务器103包括所述主数据库,也可以为所述主服务器103与所述主数据库外接且与所述主数据库相互独立,但不限于此,所述从服务器102与所述从数据库之间的关系亦然。

在本发明的一些实施例中,所述第一预设周期可调。所述第一预设周期可以设置为一天,也可以设置为三天,本领域技术人员可以根据实际情况选择所述第一预设周期的时间。

在本发明的一些实施例中,所述从服务器102与所述主服务器103连接,连接的方式可以是有线连接,还可以是无线连接。所述从服务器102根据所述第一预设周期向所述主服务器103发送对接请求时,所述主服务器103响应所述从服务器102的对接请求并进行对接,此时与所述从服务器102连接的从数据库从所述主服务器103中获取更新后的数据,并进行缓存生成缓存数据,所述从服务器102对所述缓存数据进行存储,使所述从数据库完成更新。所述从数据库为所述从服务器102自身维护的数据库。

步骤s2:至少一个客户端101向所述从服务器102发送至少一个查询任务。

在本发明的一些实施例中,所述客户端101包括输出设备,所述输出设备具体可以包括显示器。

可选地,所述显示器可以为触摸屏显示器和/或触摸板,可以为非触摸式显示器和/或触摸板,也可以不限于此。

在本发明的一些实施例中,所述至少一个客户端101在通电开启时,自动在所述客户端101的后台向所述从服务器102发送至少一个查询任务,无需在所述客户端101的前端进行操作。

步骤s3:所述从服务器102去掉所述至少一个查询任务中重复的查询任务并生成第一查询任务清单。

在本发明的一些实施例中,所述从服务器102接收所述至少一个客户端101发送的至少一个查询任务时,由于不同客户端101发送的至少一个查询任务中有重复的请求项,因此所述从服务器102需要对接收到的所述至少一个查询任务进行筛选,将重复的查询任务去掉,从而生成第一查询任务清单,具体地,所述第一查询任务清单内包括的至少一个查询任务的数量小于或等于所述至少一个客户端101发送的至少一个查询任务的数量。通过预先对接收到的至少一个查询任务进行筛选,避免了重复查询同样的内容,同时也减少了所述从服务器102的的工作量,从而对所述从服务器102的工作效率有所提高。

步骤s4:所述从服务器102确认所述第一查询任务清单中是否包括在所述缓存数据中具有查询结果的的第一查询任务。

在本发明的一些实施例中,所述从服务器102根据所述至少一个查询任务进行去重并生成所述第一查询任务清单之后,所述从服务器102确认所述第一查询任务清单中的至少一个查询任务是否与所述从数据库中生成的缓存数据中存储的查询结果一一对应,通过将所述第一查询任务清单与所述从数据库,特别是所述缓存数据的比较,可以确定所述第一查询任务清单中的至少一个查询任务是否可以从所述缓存数据中获取对应的查询结果。需要说明的是,在所述缓存数据中对于所述第一查询任务可以直接获取对应查询结果的查询任务项,形成在所述缓存数据中具有查询结果的第一查询任务。

根据步骤s4,执行步骤s41:若是,所述从服务器102从所述缓存数据中获取所述第一查询任务的查询结果返回给所述至少一个客户端101中提交所述第一查询任务的客户端101。

应理解,当所述第一查询任务清单中有至少一个查询任务在所述缓存数据中可以直接获取对应查询结果时,所述从服务器102根据存储在所述从数据库中的缓存数据获取所述第一查询任务的查询结果,并返回给所述至少一个客户端101中提交所述至少一个查询任务的客户端101。

可选地,所述从服务器102获取所述第一查询任务的查询结果的过程可以是将所述至少一个客户端101的查询请求解析,并转换成通过从数据库查询请求,以查询所述从数据库中的数据的过程。

根据步骤s4,执行步骤s42:若所述第一查询任务清单中包括在所述缓存数据中无查询结果的第二查询任务,则所述从服务器102将所述第二查询任务发送给所述至少一个客户端101向所述主服务器103进行查询。

在本发明的一些实施例中,当所述第一查询任务中获取对应查询结果的查询任务项的数量小于所述第一查询任务中的查询任务项的数量时,则所述第一查询任务还包括有在所述缓存数据中无查询结果的第二查询任务,所述从服务器102将所述第二查询任务从所述第一查询任务中筛选出来,并将所述第二查询任务发送给所述至少一个客户端101,所述至少一个客户端101接收所述第二查询任务并发送给所述主服务器103进行查询。

应理解,所述从服务器102向所述至少一个客户端101发送的所述第二查询任务的方式为随机发送,每个客户端101接收到的所述第二查询任务中的查询任务项可以是该客户端101对应提交的查询任务项,也可以不是该客户端101对应提交的查询任务项,但并不限于此。

进一步地,在执行步骤s42时,将所述第二查询任务发送给所述至少一个客户端101向所述主服务器103进行查询之后,还包括:所述至少一个客户端101获取所述主服务器103返回的对应所述第二查询任务的查询结果,并将其发送给所述从服务器102;所述从服务器102将所述第二查询任务的查询结果返回所述至少一个客户端101中提交所述第二查询任务的客户端101。

在本发明的一些实施例中,所述至少一个客户端101向所述主服务器103发送所述第二查询任务,所述主服务器103向所述主数据库获取所述第二查询任务的结果并返回所述至少一个客户端101,由于每个客户端101接收到的所述第二查询任务的查询任务项可以是该客户端101对应提交的查询任务项,也可以不是该客户端101对应提交的查询任务项,因此所述至少一个客户端101需要将接收到的所述第二查询任务的查询结果重新发送给所述从服务器102,由所述从服务器102将所述第二查询任务的查询结果原路返回所述至少一个客户端101中提交所述第二查询任务的客户端101。

本发明实施例通过所述从服务器102对所述主服务器103的数据进行缓存生成缓存数据,使得使用局域网的所述至少一个客户端101可以从所述缓存数据中获取至少部分对应的查询结果,如果所述缓存数据中没有全部对应所述至少一个客户端101发送的至少一个查询任务的查询结果,所述至少一个客户端101再对所述主服务器103进行查询,此时所述主服务器103只需获取所述第二查询任务对应的查询结果即可,从而大大减轻了所述主服务器103处理查询任务的负荷,提高所述主服务器103的工作效率。

进一步地,所述从服务器102在接收所述至少一个客户端101返回的对应所述第二查询任务的查询结果之后,还包括:所述从服务器102将所述第二查询任务的查询结果存储到所述缓存数据。

在本发明的一些实施例中,所述从服务器102在接收所述至少一个客户端101返回的对应所述第二查询任务的查询结果时,所述从服务器102将对应所述第二查询任务的查询结果保持到所述缓存数据中,不断对与所述从服务器102对接的所述从数据库中缓存的数据进行更新,使得所述从服务器102不仅高效地对所述至少一个查询任务进行处理,还避免了所述从服务器102太过于频繁地访问所述主服务器103且对所述主服务器103的数据进行缓存造成较多的限制。

进一步地,在执行步骤s42时,所述从服务器102将所述第二查询任务发送给所述至少一个客户端101向所述主服务器103进行查询具体包括:所述从服务器102将所述第二查询任务平均分配给所述至少一个客户端101向所述主服务器103进行查询,平均分配至每一个客户端101的至少一个查询任务的数量小于或等于第一阈值;所述平均分配后的至少一个查询任务的数量的余数大于第二阈值则进行二次平均分配,所述平均分配后的余数小于或等于所述第二阈值则进行随机分配。

在本发明的一些实施例中,所述第一阈值为所述主服务器103在固定时间段内的查询上限,例如,在一天之内每个客户端101向所述主服务器103进行查询的查询上限为100次,则所述第一阈值则等于100,即所述第一阈值为每个客户端101向所述主服务器103在固定时间段内进行查询时,可查询的最大额度。需要说明的是,所述第二阈值为余数设定值,当所述从服务器102对所述至少一个客户端101进行分配后的余数大于所述余数设定值时,所述从服务器102将分配后余下的查询任务项对所述至少一个客户端101进行二次平均分配。当所述从服务器102对所述至少一个客户端101进行分配后的余数小于或等于所述余数设定值时,所述从服务器102将分配后余下的查询任务项对所述至少一个客户端101进行随机分配。

应理解,本领域技术人员可以根据实际情况对所述第二阈值进行不同的选择,以使所述分配后的余数更好地分配到所述至少一个客户端101。

可选地,所述第二阈值可以为10。

进一步地,在执行步骤s42时,所述从服务器102将所述第二查询任务发送给所述至少一个客户端101向所述主服务器103进行查询具体包括:所述从服务器102将所述第二查询任务按照第三阈值分配给所述至少一个客户端101向所述主服务器103进行查询,按照所述第三阈值分配至每一个客户端101的至少一个查询任务的数量小于或等于第一阈值。

在本发明的一些实施例中,所述第三阈值为一定时间内所述从服务器102向每个客户端101进行分配的分配固定值,所述从服务器102将所述第二查询任务按照所述分配固定值分配给所述至少一个客户端101向所述主服务器103进行查询,所述分配固定值小于或等于第一阈值,即所述分配固定值小于或等于所述第一阈值为每个客户端101向所述主服务器103在固定时间段内进行查询时可查询的最大额度。当所述从服务器102将所述第二查询任务分配对所述至少一个客户端101时,将前一个客户端101分配的至少一个查询任务项的数量分配至等于所述分配固定值时不再进行分配,再将后一个客户端101分配的至少一个查询任务项的数量分配至等于所述分配固定值,直至将最后一个客户端101分配的查询任务项的数量分配至小于或恰好等于所述分配固定值,按照固定分配值进行固定分配的过程才结束。需要说明的是,所述从服务器102对已经分配过且分配到的查询任务项的数量等于所述分配固定值的单个客户端101不再进行分配。

可选地,所述第三阈值小于或等于所述第一阈值,例如,当所述第一阈值为一天时间内每个客户端101向所述主服务器103发送查询任务的次数上限,当所述第一阈值为100,即所述主服务器103的每日最大额度为100时,所述第三阈值为一天时间内所述从服务器102分配至每个客户端101的查询次数上限,此时所述第三阈值可以为80,也可以为90,还可以为100,即所述从服务器102每日分配至每个客户端101的最大额度为80或90或100。

应理解,上述两种分配方式中,无论是平均分配还是按照所述分配固定值分配,每日分配至每个客户端101的总额度都小于或等于所述第一阈值,避免了在出现紧急情况,被使用完分配额度的客户端101没有剩余额度,从不能通过所述主服务器103进行查询获取查询结果的情况,所述从服务器102分配时按照尽量少分配的原则向所述每个客户端101分配所述第二查询任务。

在本发明的一些实施例中,所述从服务器102将在设定时间阈值内对所述至少一个客户端101发送的至少一个查询任务作为同一批进行分配处理。

应理解,在设定时间阈值内所述从服务器102对所述至少一个客户端101发送的至少一个查询任务作为同一批进行分配处理,避免了在一定时间内出现较少数量的查询任务进行分批查询的情况,从而减少了所述从服务器102的工作量,提高所述从服务器102的工作效率。

在本发明的一些实施例中,在执行步骤s3时,所述从服务器102去掉所述至少一个查询任务中重复的查询任务具体包括:所述从服务器102将至少一个所述客户端101发送的至少一个查询任务进行自动精确匹配并对所述自动精确匹配的至少一个查询任务进行精确查询,当至少一个所述客户端101发送的至少一个查询任务的重复率大于或等于重复率设定值时,则判断为重复查询任务,所述从服务器102去掉所述重复查询任务。

应理解,所述至少一个客户端101向所述从服务器102发送的至少一个查询任务中包括有索引关键词,根据所述索引关键词可以在相应的数据库中进行快速搜索。所述索引关键词可以是模糊索引关键词,所述模糊索引关键词可以在较大范围内进行模糊查询,但不够精确,将会引起所述从服务器102以及所述主服务器103进行大量的搜索,造成较大的负荷。所述索引关键词还可以是用于精确查询的精确索引关键词,例如精确到某一目标对象对应的编号或具体名称,具有明确指向性。

可选地,所述从服务器102在接收到所述至少一个客户端101发送的至少一个查询任务后,需要对所述至少一个查询任务中的模糊索引关键词进行预处理,所述从服务器102将所述模糊索引关键词关联到的批量精确索引关键词发送到对应的所述客户端101,经过用户确认后,再将所述批量精确索引关键词与对用的所述至少一个查询任务进行绑定,从而将所有的所述至少一个查询任务包括的索引关键词处理为精确索引关键词。

需要说明的是,所述从服务器102通过对所述精确索引关键词进行重复率分析,即相似率分析,当所述精确索引关键词之间的重复率大于或等于所述重复率设定值时,所述精确索引关键词对应的至少一个查询任务为重复可查询任务,所述从服务器102将所述重复可查询任务去掉,以便于下一步生成所述第一查询任务清单进行精确查询。

在本发明的一些实施例中,所述从服务器102接收至少一个客户端101发送的至少一个查询任务后,若单个客户端101的至少一个查询任务数量小于或等于一第四阈值,则所述从服务器102对所述单个客户端101的对应的所述第二查询任务原路返回;所述从服务器102接收至少一个所述客户端101发送的至少一个查询任务,并且每个所述客户端101对应的所述第二查询任务数量大于所述第四阈值后,所述从服务器102对所述至少一个客户端101进行重新分配。

应理解,所述第四阈值为一定时间内每个客户端101向所述从服务器102发送的至少一个查询任务的数量的最小值,例如,在一天内每个客户端101向所述从服务器102发送的至少一个查询任务的最小数量为所述第四阈值。在所述从服务器102对所述至少一个查询任务进行去重处理后并获取所述缓存数据中的查询结果后,所述从服务器102对所述第二至少一个查询任务分配至至少一个客户端101时,若有单个客户端101发送的至少一个查询任务数量小于或等于所述第四阈值,则所述从服务器102将所述单个客户端101对应的至少一个查询任务原路返回。若所有单个客户端101发送的至少一个查询任务数量都大于所述第四阈值,则所述从服务器102将所述第二查询任务对所有发送至少一个查询任务的客户端101进行重新分配处理。

应理解,所述原路返回的对应至少一个查询任务的客户端101通过第四阈值的分配方式可以快速地通过所述主服务器103直接获取对应的查询结果,无需经过所述从服务器102接收到对应的查询结果后再分配至所述客户端101,这样不仅使得至少部分客户端101快速获取查询结果,还使得所述从服务器102进一步减小工作量,从而提高工作效能。

图3示出了本发明实施例提供的一种客户端300的示意性框图,所述客户端300包括:

发送模块310,用于向从服务器发送至少一个查询任务;

接收模块320,用于接收所述从服务器返回的第一查询任务的查询结果,所述第一查询任务为第一查询任务清单中包括在所述从服务器的缓存数据中具有查询结果的至少一个,所述第一查询任务清单为所述从服务器去掉所述至少一个查询任务中重复的查询任务生成的查询任务清单;

查询模块330,用于接收所述从服务器发送的第二查询任务,并将所述第二查询任务发送给主服务器进行查询,所述第二查询任务为在所述第一查询任务清单中没有包括在所述从服务器的缓存数据中具有查询结果的至少一个查询任务。

本发明实施例的客户端300,向所述从服务器发送至少一个查询任务并将所述第二查询任务发送给所述主服务器进行查询,可以实现减轻服务器的负荷,从而能够提高服务器的工作效率。

进一步地,所述客户端300还包括结果返回模块340,所述结果返回模块340用于接收所述主服务器返回的所述第二查询任务的查询结果,并将所述第二查询任务的查询结果发送给所述从服务器。

进一步地,所述接收模块320还用于接收所述从服务器返回的对应提交的所述第二查询任务的查询结果。

根据本发明实施例的客户端300可对应于根据本发明实施例的数据查询的方法中的客户端,并且客户端300中的各个模块的上述和其它操作和/或功能分别为了实现前述各个方法的相应流程,为了简洁,在此不再赘述。

图4示出了本发明实施例提供的一种服务器400的示意性框图。

该服务器400可以对应于各方法实施例中的服务器,该服务器400包括:

缓存模块410,用于根据第一预设周期对主服务器中的数据进行缓存生成缓存数据;

接收模块420,用于接收至少一个客户端发送的至少一个查询任务;

生成模块430,用于去掉所述至少一个查询任务中重复的查询任务并生成第一查询任务清单;

确认模块440,确认所述第一查询任务清单中是否包括在所述缓存数据中具有查询结果的的第一查询任务;

结果返回模块450,用于当所述第一查询任务清单中包括在所述缓存数据中具有查询结果的的第一查询任务时,从所述缓存数据中获取所述第一查询任务的查询结果返回给所述至少一个客户端中提交所述第一查询任务的客户端;

发送模块460,用于当所述第一查询任务清单中包括在所述缓存数据中无查询结果的第二查询任务时,则将所述第二查询任务发送给所述至少一个客户端向所述主服务器进行查询。

本发明实施例的服务器400,获取所述至少一个查询任务中的至少部分查询结果以及将所述第二查询任务发送给客户端向所述主服务器进行查询,可以实现减轻服务器的负荷,从而能够提高从服务器的工作效率。

进一步地,所述服务器400还包括对应模块470,所述对应模块470用于接收所述至少一个客户端返回的对应所述第二查询任务的查询结果,并将所述第二查询任务的查询结果返回所述至少一个客户端中提交所述第二查询任务的客户端。

进一步地,所述服务器400还包括存储模块480,所述存储模块680用于将所述第二查询任务的查询结果存储到所述缓存数据。

进一步地,所述服务器400还包括分配模块490,所述分配模块490用于将所述第二查询任务平均分配给所述至少一个客户端向所述主服务器进行查询,平均分配至每一个客户端的至少一个查询任务的数量小于或等于第一阈值;所述平均分配后的至少一个查询任务的数量的余数大于第二阈值则进行二次平均分配,所述平均分配后的余数小于或等于所述第二阈值则进行随机分配。

根据本发明实施例的服务器400可对应于根据本发明实施例的数据查询的方法中的从服务器,并且服务器400中的各个模块的上述和其它操作和/或功能分别为了实现前述各个方法的相应流程,为了简洁,在此不再赘述。

参见图5,图5为本发明实施例提供的一种客户端的结构示意图。本实施例的客户端包括的各组件用于执行图1对应的实施例中的各步骤,具体请参阅图1及图1对应的实施例中的相关描述,此处不赘述。本实施例的客户端包括处理器502、输入设备(图未示)、输出设备(图未示)和存储器506,所述处理器502、输入设备和存储器806相互连接,其中,所述存储器506用于存储计算机程序5061,所述计算机程序5061包括程序指令,所述程序指令当被处理器执行时使所述处理器执行前述本发明实施例的各个方法。

可选地,本发明实施例提供的客户端的结构包括至少一个处理器802(例如cpu),至少一个网络接口505或者其他通信接口,存储器806,和至少一个通信总线503;通信总线503用于实现这些部件之间的连接通信。处理器502用于执行存储器506中存储的可执行模块,例如计算机程序。存储器506可能包含高速随机存取存储器(randomaccessmemory,ram),也可能还包括非不稳定的存储器(non-volatilememory),例如至少一个磁盘存储器。通过至少一个网络接口808(可以是有线或者无线)实现与至少一个其他网元之间的通信连接。

在一些实施方式中,存储器506存储了程序5061,处理器502执行程序5061,用于执行前述本发明实施例的各个方法。

参见图6,图6为本发明实施例提供的一种服务器的结构示意图。本实施例的服务器包括的各组件用于执行图1对应的实施例中的各步骤,具体请参阅图2及图2对应的实施例中的相关描述,此处不赘述。本实施例的服务器包括处理器602、输入设备(图未示)、输出设备(图未示)和存储器606,所述处理器602、输入设备和存储器606相互连接,其中,所述存储器606用于存储计算机程序6061,所述计算机程序6061包括程序指令,所述程序指令当被处理器执行时使所述处理器执行前述本发明实施例的各个方法。

可选地,本发明实施例提供的服务器的结构包括至少一个处理器602(例如cpu),至少一个网络接口605或者其他通信接口,存储器606,和至少一个通信总线603;通信总线603用于实现这些部件之间的连接通信。处理器602用于执行存储器中存储的可执行模块,例如计算机程序。存储器606可能包含高速随机存取存储器(randomaccessmemory,ram),也可能还包括非不稳定的存储器(non-volatilememory),例如至少一个磁盘存储器。通过至少一个网络接口605(可以是有线或者无线)实现与至少一个其他网元之间的通信连接。

在一些实施方式中,存储器606存储了程序6061,处理器602执行程序6061,用于执行前述本发明实施例的各个方法。

本发明实施例还提供了一种数据查询系统。如图7所示,所述数据查询系统700包括:

客户端710,该客户端可以是前述本发明实施例中的客户端;以及

服务器720,该服务器可以是前述本发明实施例中的从服务器。

主服务器730,该主服务器中包括待查询的数据。

该实施例中的数据查询系统可以对应于图1中的客户端、服务器和主服务器组成的数据查询系统。

下面将参见图8和图9并结合另一实施例来详细说明本发明。

本实施例所提供的数据查询方法及数据查询系统中相比于图1和图2中对应的实施例增加了分配服务器和用于缓存主服务器数据的子服务器,而在本实施例中省略了从服务器。图8和图9的方法及产生的技术效果分别与图1以及图2对应的实施例相同,为简要描述,本实施例部分未提及之处,可参考图1和图2及图1和图2对应的实施例中相应内容。

图8示出了本发明另一实施例提供的实施例提供的数据查询系统的系统架构示意图。

如图8所示,所述数据查询系统包括:

客户端201,用于发送至少一个查询任务并接收所述至少一个查询任务的查询结果;

子服务器202,用于根据第一预设周期对主服务器中的数据进行缓存生成缓存数据;

分配服务器203,用于接收所述至少一个查询任务,从所述缓存数据中获取所述至少一个查询任务的至少部分查询结果;以及

主服务器204,用于接收至少一个查询任务并发送对应的至少一个查询任务的查询结果。

本发明实施例的技术方案可以应用于所述数据查询系统中。

图9示出了本发明另一实施例的数据的方法的示意性流程图。

如图4所示的一种数据的方法包括:

s01:子服务器203根据第一预设周期对主服务器204中的数据进行缓存生成缓存数据。

在本发明的一些实施例中,所述子服务器203可以定期的从主服务器204上的数据进行复制和缓存,通过所述主服务器204和所述子服务器203之间的数据复制和缓存,可以实现负载均衡,可以通过在所述主服务器204和所述子服务器203之间切分处理客户查询的负荷。

应理解,所述主服务器204和所述子服务器203包括于单服务器中的数据库管理系统。所述主服务器204连接于主数据库,且所述主数据库对至少一个查询任务的数据进行实时更新。所述子服务器203连接于子数据库,且所述子数据库的数据存储量小于所述主数据可的数据存储量,且所述子服务器和所述子数据库无法进行实时更新。关于服务器和数据库之间的关系,可以为所述主服务器204包括所述主数据库,也可以为所述主服务器204与所述主数据库外接且与所述主数据库相互独立,但不限于此,所述子服务器203与所述子数据库之间的关系亦然。

s02:分配服务器202接收至少一个客户端201发送的至少一个查询任务。

s03:所述分配服务器202去掉所述至少一个查询任务中重复的查询任务并生成第一查询任务清单。

s04:所述分配服务器202确认所述第一查询任务清单中是否包括在所述缓存数据中具有查询结果的的第一查询任务。

s041:若是,所述分配服务器202从所述缓存数据中获取所述第一查询任务的查询结果返回给所述至少一个客户端201中提交所述第一查询任务的客户端。

s042:若所述第一查询任务清单中包括在所述缓存数据中无查询结果的第二查询任务,则所述分配服务器202将所述第二查询任务发送给所述至少一个客户端201向所述主服务器204进行查询。

在本发明的一些实施例中,所述分配服务器202具有去重和分配的功能,所述分配服务器202与所述子服务器203连接,由于所述子服务器203连接于所述子数据库,因此,所述分配服务器202与所述子数据库连接。

应理解,所述分配服务器202中没有维护的数据库,因此,所述分配服务器202自身没有存储数据的功能,所述分配服务器202对接收到的查询任务进行解析,再从所述子数据库中的缓存数据中获取查询结果。

所述分配服务器202还用于将所述第二查询任务对所述至少一个客户端201进行重新分配,所述重新分配的方式对应于图1和图3以及图1和图3对应的实施例中描述的重新分配的方式,为了简洁,在此不再赘述。

图10示出了本发明实施例提供的一种客户端110的示意性框图,所述客户端110包括:

发送模块111,用于向从服务器发送至少一个查询任务;

接收模块112,用于接收所述从服务器返回的第一查询任务的查询结果,所述第一查询任务为第一查询任务清单中包括在所述从服务器的缓存数据中具有查询结果的至少一个,所述第一查询任务清单为所述从服务器去掉所述至少一个查询任务中重复的查询任务生成的查询任务清单;

查询模块113,用于接收所述从服务器发送的第二查询任务,并将所述第二查询任务发送给主服务器进行查询,所述第二查询任务为在所述第一查询任务清单中没有包括在所述从服务器的缓存数据中具有查询结果的至少一个查询任务。

本发明实施例的客户端110,向所述从服务器发送至少一个查询任务并将所述第二查询任务发送给所述主服务器进行查询,可以实现减轻服务器的负荷,从而能够提高服务器的工作效率。

进一步地,所述客户端110还包括结果返回模块114,所述结果返回模块114用于接收所述主服务器返回的所述第二查询任务的查询结果,并将所述第二查询任务的查询结果发送给所述从服务器。

进一步地,所述接收模块112还用于接收所述从服务器返回的对应提交的所述第二查询任务的查询结果。

根据本发明实施例的客户端110可对应于根据本发明实施例的数据查询的方法中的客户端,并且客户端110中的各个模块的上述和其它操作和/或功能分别为了实现前述各个方法的相应流程,为了简洁,在此不再赘述。

图11示出了本发明另一实施例提供的一种服务器120的示意性框图。

该服务器120可以对应于各方法实施例中的服务器,该服务器120包括:

接收模块121,用于接收至少一个客户端发送的至少一个查询任务;

生成模块122,用于去掉所述至少一个查询任务中重复的查询任务并生成第一查询任务清单;

确认模块123,确认所述第一查询任务清单中是否包括在子服务器缓存主服务器的数据生成的缓存数据中具有查询结果的的第一查询任务;

结果返回模块124,用于当所述第一查询任务清单中包括在所述缓存数据中具有查询结果的的第一查询任务时,从所述缓存数据中获取所述第一查询任务的查询结果返回给所述至少一个客户端中提交所述第一查询任务的客户端;

发送模块125,用于当所述第一查询任务清单中包括在所述缓存数据中无查询结果的第二查询任务时,则将所述第二查询任务发送给所述至少一个客户端向所述主服务器进行查询。

本发明实施例的服务器126,获取所述至少一个查询任务中的至少部分查询结果以及将所述第二查询任务发送给客户端向所述主服务器进行查询,可以实现减轻服务器的负荷,从而能够提高从服务器的工作效率。

进一步地,所述服务器120还包括对应模块127,所述对应模块127用于接收所述至少一个客户端返回的对应所述第二查询任务的查询结果,并将所述第二查询任务的查询结果返回所述至少一个客户端中提交所述第二查询任务的客户端。

进一步地,所述服务器120还包括缓存模块128,所述缓存模块770用于将所述第二查询任务的查询结果存储到所述缓存数据。

进一步地,所述服务器120还包括分配模块129,所述分配模块129用于将所述第二查询任务平均分配给所述至少一个客户端向所述主服务器进行查询,平均分配至每一个客户端的至少一个查询任务的数量小于或等于第一阈值;所述平均分配后的至少一个查询任务的数量的余数大于第二阈值则进行二次平均分配,所述平均分配后的余数小于或等于所述第二阈值则进行随机分配。

根据本发明实施例的服务器120可对应于根据本发明另一实施例的数据查询的方法中的分配服务器,并且服务器120中的各个模块的上述和其它操作和/或功能分别为了实现前述各个方法的相应流程,为了简洁,在此不再赘述。

参见图12,图12为本发明另一实施例提供的一种客户端的结构示意图。本实施例的客户端包括的各组件用于执行图2对应的实施例中的各步骤,具体请参阅图4及图4对应的实施例中的相关描述,此处不赘述。本实施例的客户端包括处理器1202、输入设备(图未示)、输出设备(图未示)和存储器1206,所述处理器1202、输入设备和存储器1206相互连接,其中,所述存储器1206用于存储计算机程序1261,所述计算机程序1261包括程序指令,所述程序指令当被处理器执行时使所述处理器执行前述本发明实施例的各个方法。

可选地,本发明实施例提供的客户端的结构包括至少一个处理器1202(例如cpu),至少一个网络接口1205或者其他通信接口,存储器1006,和至少一个通信总线1203;通信总线1203用于实现这些部件之间的连接通信。处理器1202用于执行存储器1206中存储的可执行模块,例如计算机程序。存储器1206可能包含高速随机存取存储器(randomaccessmemory,ram),也可能还包括非不稳定的存储器(non-volatilememory),例如至少一个磁盘存储器。通过至少一个网络接口1208(可以是有线或者无线)实现与至少一个其他网元之间的通信连接。

在一些实施方式中,存储器1206存储了程序1261,处理器1202执行程序1261,用于执行前述本发明实施例的各个方法。

参见图13,图13为本发明另一实施例提供的一种服务器的结构示意图。本实施例的服务器包括的各组件用于执行图4对应的实施例中的各步骤,具体请参阅图4及图4对应的实施例中的相关描述,此处不赘述。本实施例的服务器包括处理器1302、输入设备(图未示)、输出设备(图未示)和存储器1306,所述处理器1302、输入设备和存储器1306相互连接,其中,所述存储器1306用于存储计算机程序1361,所述计算机程序1361包括程序指令,所述程序指令当被处理器执行时使所述处理器执行前述本发明实施例的各个方法。

可选地,本发明实施例提供的服务器的结构包括至少一个处理器1302(例如cpu),至少一个网络接口1305或者其他通信接口,存储器1106,和至少一个通信总线1303;通信总线1303用于实现这些部件之间的连接通信。处理器1302用于执行存储器中存储的可执行模块,例如计算机程序。存储器1306可能包含高速随机存取存储器(randomaccessmemory,ram),也可能还包括非不稳定的存储器(non-volatilememory),例如至少一个磁盘存储器。通过至少一个网络接口1105(可以是有线或者无线)实现与至少一个其他网元之间的通信连接。

在一些实施方式中,存储器1306存储了程序1361,处理器1302执行程序1361,用于执行前述本发明实施例的各个方法。

可选地,如图14所示,该数据查询系统140还可以包括:

客户端141,该客户端可以是前述本发明实施例中的客户端;

服务器142,该服务器可以是前述本发明实施例中的分配服务器;

子服务器143,该服务器可以是前述本发明实施例中的子服务器;以及

主服务器144,该主服务器中包括待查询的数据。

该实施例中的数据查询系统可以对应于图2中的客户端、分配服务器、子服务器和主服务器组成的数据查询系统,用于向主服务器发送数据查询任务并返回查询结果,由分配服务器返回给客户端数据查询结果。

上述的客户端和服务器均可视为终端,所述计算机可读存储介质可以是前述任一实施例所述的终端的内部存储单元,例如终端的硬盘或内存。所述计算机可读存储介质也可以是所述终端的外部存储设备,例如所述终端上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。进一步地,所述计算机可读存储介质还可以既包括所述终端的内部存储单元也包括外部存储设备。所述计算机可读存储介质用于存储所述计算机程序及所述终端所需的其他程序和数据。所述计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的数据。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的方法、装置和终端的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本发明所提供的几个实施例中,应该理解到,所揭露的方法、装置和终端,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

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