CN109933585B - 数据查询方法和数据查询系统 - Google Patents
数据查询方法和数据查询系统 Download PDFInfo
- Publication number
- CN109933585B CN109933585B CN201910135391.0A CN201910135391A CN109933585B CN 109933585 B CN109933585 B CN 109933585B CN 201910135391 A CN201910135391 A CN 201910135391A CN 109933585 B CN109933585 B CN 109933585B
- Authority
- CN
- China
- Prior art keywords
- data
- target data
- memory
- value
- server
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明实施例提供一种数据查询方法和系统,该方法应用于对一类客户端的数据访问请求进行处理的处理服务器上,包括:接收预设客户端类别中任一个客户端发送的数据访问请求,且数据访问请求为获取目标数据的请求;根据查询优先级查询多个存储单元,以获取目标数据,其中,多个存储单元按照查询优先级从大到小的顺序排列为:处理服务器的内存、缓存服务器、数据库服务器;将获取到的目标数据返回给客户端。本发明实施例通过将处理服务器的内存加入数据访问请求的响应模式中,并对处理服务器内存配置最大查询优先级,从而减轻了缓存服务器的任务响应压力,解决了数据访问请求响应时间较长的技术问题。
Description
技术领域
本发明涉及数据处理的技术领域,具体涉及一种数据查询方法和数据查询系统。
背景技术
随着互联网的发展,数据库的访问量也不断增长。为了降低数据库服务器的访问压力,数据库服务器之前通常设置有缓存服务器。在接收到客户端对于某数据的访问请求时,目前的数据查询方式是优先到缓存服务器中查询是否存在该数据,如果不存在再到数据库服务器查询。
目前的这种数据查询方法,在缓存数据是一个公共数据,并且数据量较大(大于100KB)时,极易出现响应时间较长的现象。具体地,所有客户端都会访问公共缓存,而公共缓存对应一个缓存键,缓存键将公共缓存的访问请求映射到缓存公共数据的缓存服务器上。当各个客户端的访问量增加时,所有的访问量都会压在某一台缓存服务器上。因为单台缓存服务器的任务处理能力有限,不能及时处理大量请求,从而导致后面访问请求阻塞延时,进而导致整个缓存服务器的请求超时,调用失败。更为严重的是,当访问量超出了单台缓存服务器的任务处理能力时,缓存服务器和它的从服务器会失联,失联后当前缓存服务器会和它的从服务器进行缓存数据同步,这是一个资源消耗较高的操作,从而使得缓存服务器的任务处理能力进一步下降,响应时间进一步增加。
针对缓存数据是公共数据且数据量较大时,数据访问请求的响应时间较长的技术问题,现有技术中缺乏有效的解决方案。
发明内容
有鉴于此,本发明实施例提供了一种数据查询方法及数据查询系统,以解决数据访问请求响应时间较长的技术问题。
根据本发明的第一方面,提供一种数据查询方法,应用于对一类客户端的数据访问请求进行处理的处理服务器上,所述数据查询方法包括:
接收预设客户端类别中任一个客户端发送的数据访问请求,且所述数据访问请求为获取目标数据的请求;
根据查询优先级查询多个存储单元,以获取所述目标数据,其中,多个所述存储单元按照所述查询优先级从大到小的顺序排列为:所述处理服务器的内存、缓存服务器、数据库服务器;
将获取到的所述目标数据返回给所述客户端。
可选地,根据查询优先级查询多个存储单元,包括:
根据所述处理服务器的内存对所述目标数据取值的更新状况,从所述处理服务器的内存和所述缓存服务器中确定数据读取单元;
从所述数据读取单元中读取所述目标数据,得到读取结果;
根据所述读取结果,判断是否从所述数据读取单元中读取到所述目标数据;
在没有从所述数据读取单元中读取到所述目标数据的情况下,从所述数据库服务器读取所述目标数据。
可选地,根据所述处理服务器的内存对所述目标数据取值的更新状况,从所述处理服务器的内存和所述缓存服务器中确定数据读取单元,包括:
根据标识信息,判断所述处理服务器的内存是否将所述目标数据的取值更新到与所述缓存服务器一致;
在所述处理服务器的内存没有将所述目标数据的取值更新到与所述缓存服务器一致的情况下,将所述缓存服务器确定为所述数据读取单元;以及,
在所述处理服务器的内存将所述目标数据的取值更新到与所述缓存服务器一致的情况下,将所述处理服务器的内存确定为所述数据读取单元。
可选地,所述标识信息包括缓存标识数据和内存标识数据,其中,所述缓存标识数据为所述缓存服务器在将所述目标数据的数值更新到与所述数据库服务器一致时,更新得到的一个数据;
所述内存标识数据为所述处理服务器的内存将所述目标数据的数值更新到与所述缓存服务器一致时,根据所述缓存标识数据更新得到的一个数据。
可选地,所述读取结果为所述目标数据以预设数据交换格式表示的字符串,根据所述读取结果,判断是否从所述数据读取单元中读取到所述目标数据,包括:
判断所述字符串中所述目标数据的取值是否为空;
在所述字符串中所述目标数据的取值为空的情况下,确定没有从所述数据读取单元中读取到所述目标数据;以及,
在所述字符串中所述目标数据的取值不为空,且所述字符串转化的对象为空的情况下,确定没有从所述数据读取单元中读取到所述目标数据。
可选地,在所述字符串中所述目标数据的取值不为空,且所述字符串转化的对象为空的情况下,确定没有从所述数据读取单元中读取到所述目标数据,包括:
在所述字符串中所述目标数据的取值不为空时,判断所述字符串中所述目标数据的取值是否为拖底数据,其中,所述拖底数据为所述数据库服务器中不存在数据的预设取值;
在所述字符串中所述目标数据的取值不为所述拖底数据的情况下,判断所述字符串转化的对象是否为空;
在所述字符串转化的对象为空的情况下,确定没有从所述数据读取单元中读取到所述目标数据。
可选地,在所述字符串中所述目标数据的取值不为空的情况下,还包括:
读取标识符,其中,所述标识符的取值是根据所述数据读取单元的设定来源被预先配置;
根据所述标识符,判断所述数据读取单元是所述缓存服务器还是所述处理服务器的内存;
在所述数据读取单元是所述缓存服务器的情况下,通过所述字符串更新所述处理服务器的内存中的所述目标数据。
根据本发明的第二方面,提供一种数据查询系统,被设置在对一类客户端的数据访问请求进行处理的处理服务器上,所述数据查询系统包括:
接收模块,用于接收预设客户端类别中任一个客户端发送的数据访问请求,且所述数据访问请求为获取目标数据的请求;
查询获取模块,用于根据查询优先级查询多个存储单元,以获取所述目标数据,其中,多个所述存储单元按照所述查询优先级从大到小的顺序排列为:所述处理服务器的内存、缓存服务器、数据库服务器;
数据返回模块,用于将获取到的所述目标数据返回给所述客户端。
可选地,所述查询获取模块,包括:
确定单元,用于根据所述处理服务器的内存对所述目标数据取值的更新状况,从所述处理服务器的内存和所述缓存服务器中确定数据读取单元;
第一读取单元,用于从所述数据读取单元中读取所述目标数据,得到读取结果;
判断单元,用于根据所述读取结果,判断是否从所述数据读取单元中读取到所述目标数据;
第二读取单元,用于在没有从所述数据读取单元中读取到所述目标数据的情况下,从所述数据库服务器读取所述目标数据。
可选地,所述确定单元用于:
根据标识信息,判断所述处理服务器的内存是否将所述目标数据的取值更新到与所述缓存服务器一致;
在所述处理服务器的内存没有将所述目标数据的取值更新到与所述缓存服务器一致的情况下,将所述缓存服务器确定为所述数据读取单元;以及,
在所述处理服务器的内存将所述目标数据的取值更新到与所述缓存服务器一致的情况下,将所述处理服务器的内存确定为所述数据读取单元。
可选地,所述标识信息包括缓存标识数据和内存标识数据,其中,所述缓存标识数据为所述缓存服务器在将所述目标数据的数值更新到与所述数据库服务器一致时,更新得到的一个数据;
所述内存标识数据为所述处理服务器的内存将所述目标数据的数值更新到与所述缓存服务器一致时,根据所述缓存标识数据更新得到的一个数据。
可选地,所述读取结果为所述目标数据以预设数据交换格式表示的字符串,所述判断单元用于:
判断所述字符串中所述目标数据的取值是否为空;
在所述字符串中所述目标数据的取值为空的情况下,确定没有从所述数据读取单元中读取到所述目标数据;以及,
在所述字符串中所述目标数据的取值不为空,且所述字符串转化的对象为空的情况下,确定没有从所述数据读取单元中读取到所述目标数据。
可选地,所述判断单元用于:
在所述字符串中所述目标数据的取值不为空时,判断所述字符串中所述目标数据的取值是否为拖底数据,其中,所述拖底数据为所述数据库服务器中不存在数据的预设取值;
在所述字符串中所述目标数据的取值不为所述拖底数据的情况下,判断所述字符串转化的对象是否为空;
在所述字符串转化的对象为空的情况下,确定没有从所述数据读取单元中读取到所述目标数据。
可选地,所述判断单元还用于:
在所述字符串中所述目标数据的取值不为空的情况下,读取标识符,其中,所述标识符的取值是根据所述数据读取单元的设定来源被预先配置;
根据所述标识符,判断所述数据读取单元是所述缓存服务器还是所述处理服务器的内存;
在所述数据读取单元是所述缓存服务器的情况下,通过所述字符串更新所述处理服务器的内存中的所述目标数据。
根据本发明的第三方面,提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令被执行时实现如第一方面任一实施方式所述的数据查询方法。
根据本发明的第四方面,提供一种数据查询装置,包括:
存储器,用于存储计算机指令;
处理器,耦合到所述存储器,所述处理器被配置为基于所述存储器存储的计算机指令执行实现如第一方面任一实施方式所述的数据查询方法。
本发明的实施例具有以下优点或有益效果:
本发明的实施例将处理服务器的内存加入数据访问请求的响应模式中,使现有技术中的两层数据存储结构转化成了三层数据存储结构,处理服务器在接收到预设客户端类别中任一个客户端发送的数据访问请求时,优先从处理服务器的内存中查询数据,因而,将不同客户端类别的数据访问请求分发到不同的处理服务器上,避免了请求都压在某一台缓存服务器上,减轻了缓存服务器的任务响应压力;并且,处理服务器内存的处理速度要快于缓存服务器,且从处理服务器的内存中查询数据减少了数据的网络传输时间,从而在缓存服务器的缓存数据是公共数据且数据量较大时,数据访问请求也可以得到较快的响应,解决了数据访问请求响应时间较长的技术问题。
附图说明
通过参照以下附图对本发明实施例的描述,本发明的上述以及其它目的、特征和优点将更为清楚,在附图中:
图1是根据本发明实施例的数据查询方法的应用示意图;
图2是根据本发明实施例的数据查询方法流程图;
图3是根据本发明实施例的根据查询优先级查询多个存储单元的方法流程图;
图4是根据本发明实施例的数据查询系统的结构框图;
图5是根据本发明实施例的数据查询装置的结构框图。
具体实施方式
以下基于实施例对本发明进行描述,但是本发明并不仅仅限于这些实施例。在下文对本发明的细节描述中,详尽描述了一些特定的细节部分。对本领域技术人员来说没有这些细节部分的描述也可以完全理解本发明。为了避免混淆本发明的实质,公知的方法、过程、流程没有详细叙述。另外附图不一定是按比例绘制的。
现有技术中,各类客户端的处理服务器在接收到客户端发送的数据访问请求时,先访问缓存服务器,在缓存服务器没有数据的情况下再访问数据库服务器,处理服务器的该种数据查询方法在缓存服务器中的缓存数据是公共数据且数据量较大时,极易出现数据访问请求响应较慢的技术问题。基于此,本发明实施例提供了一种数据查询方法和数据查询系统,以解决数据访问请求响应较慢的技术问题。
图1所示是本发明实施例中数据查询方法的应用示意图。参照图1,本发明实施例将处理服务器的内存130加入数据访问请求的响应模式中,使现有技术中“缓存服务器120+数据库服务器110”的两层数据存储结构转化成了“处理服务器内存130+缓存服务器120+数据库服务器110”的三层数据存储结构。需要强调的是,图1中的每个处理服务器处理一类客户端的数据访问请求,因而,每个处理服务器都有一个预设客户端类别,图2示出了图1中各个处理服务器的数据查询方法流程图。参照图2,该数据查询方法包括:
步骤S101,接收预设客户端类别中任一个客户端发送的数据访问请求,且数据访问请求为获取目标数据的请求。
步骤S102,根据查询优先级查询多个存储单元,以获取目标数据,其中,多个存储单元按照查询优先级从大到小的顺序排列为:处理服务器的内存、缓存服务器、数据库服务器。
步骤S103,将获取到的目标数据返回给客户端。
本发明实施例中,处理服务器在接收到预设客户端类别中任一个客户端发送的数据访问请求时,优先从处理服务器的内存中查询数据,因而,将不同客户端类别的数据访问请求分发到不同的处理服务器上,通过处理服务器的内存来响应大部分数据访问请求,避免了请求都压在某一台缓存服务器上,减轻了缓存服务器的任务响应压力;而且,处理服务器内存的处理速度要快于缓存服务器,且从处理服务器的内存中查询数据减少了数据的网络传输时间,从而较大程度上提升了数据访问请求的响应速度,对于缓存服务器的缓存数据是公共数据且数据量较大的情况,解决解决了数据访问请求响应时间较长的技术问题。
在使现有技术中两层数据存储结构转化成了本发明实施例中三层数据存储结构后,涉及到的主要问题是每个目标数据在三层数据存储结构中存与取的便捷性。
在可选的实施例中,参照图3,步骤S102,根据查询优先级查询多个存储单元,包括:
步骤S301,根据处理服务器的内存对目标数据取值的更新状况,从处理服务器的内存和缓存服务器中确定数据读取单元。
需要说明的是,本发明实施例的数据查询方法是要查询数据库服务器中各数据的取值,三层数据存储结构中的数据更新顺序为:数据库服务器、缓存服务器、处理服务器内存,因而,该步骤即为,若处理服务器的内存对目标数据取值为最新,则将处理服务器的内存确定为数据读取单元;若处理服务器的内存对目标数据取值不是最新,则将缓存确定为数据读取单元,从而兼顾读取目标数据最新取值的前提下优先从处理服务器的内存中查询目标数据。
进一步,处理服务器的内存对目标数据取值的更新状况可以根据标识信息来较为便捷地确定,例如,在处理服务器的内存将目标数据的取值没有更新到与缓存服务器一致的情况下,标识信息被赋予第一信息;在处理服务器的内存将目标数据的取值更新到与缓存服务器一致的情况下,标识信息被赋予第二信息,且第二信息和第一信息不同,则可以根据标识信息确定处理服务器的内存对目标数据取值的更新状况。
相应地,根据处理服务器的内存对目标数据取值的更新状况,从处理服务器的内存和缓存服务器中确定数据读取单元,具体包括:
根据标识信息,判断处理服务器的内存是否将目标数据的取值更新到与缓存服务器一致;
在处理服务器的内存没有将目标数据的取值更新到与缓存服务器一致的情况下,将缓存服务器确定为数据读取单元;以及,
在处理服务器的内存将目标数据的取值更新到与缓存服务器一致的情况下,将处理服务器的内存确定为数据读取单元。
上述标识信息可以包括缓存标识数据和内存标识数据,其中,
缓存标识数据为缓存服务器在将目标数据的数值更新到与数据库服务器一致时,更新得到的一个数据;
内存标识数据为处理服务器的内存将目标数据的数值更新到与缓存服务器一致时,根据缓存标识数据更新得到的一个数据。
需要说明的是,上述根据缓存标识数据更新得到内存标识数据,可以是将内存标识数据直接更新为缓存标识数据,还可以是将内存标识数据通过缓存标识数据的一个函数进行更新。
例如,目标数据的缓存标识数据和内存标识数据可以设置一个初始默认值,具体可以设为0。在缓存服务器首次将目标数据的取值更新到与数据库服务器一致时,缓存标识数据更新为1,此时,若处理服务器的内存没有将目标数据的数值更新到与缓存服务器一致,则内存标识数据为0;若处理服务器的内存将目标数据的数值更新到与缓存服务器一致,则内存标识数据同样更新为1,从而根据内存标识数据是否与缓存标识数据一致,就可以快捷准确地确定处理服务器的内存是否将目标数据的取值更新到与缓存服务器一致。
步骤S302,从数据读取单元中读取目标数据,得到读取结果。
需要说明的是,数据在数据库服务器中多以对象的形式被存储,在缓存服务器和处理服务器中则多以预设数据交换格式的字符串(常用的为json字符串)被存储,因而,从数据读取单元中读取到的读取结果为目标数据取值的字符串。
步骤S303,根据读取结果,判断是否从数据读取单元中读取到目标数据。
针对数据在数据库服务器中以对象的形式被存储,在缓存服务器和处理服务器中以预设数据交换格式的字符串被存储,该步骤可以先判断上述字符串中目标数据的取值是否为空,如果为空则说明没有从数据读取单元中读取到目标数据;如果不为空,并且在字符串转化的对象不为空的情况下则说明从数据读取单元中读取到目标数据,反之,如果字符串转化的对象为空则说明没有从数据读取单元中读取到目标数据。
进一步,为了防止数据库服务器中没有目标数据的情况下,频繁访问数据库服务器,可以对数据库服务器中不存在的数据设置一个预设取值作为拖底数据,此情况下,上述在判断出字符串中目标数据的取值不为空时,继而判断字符串中目标数据的取值是否为该拖底数据,其中,
若字符串中目标数据的取值为该拖底数据,则说明数据库服务器中无目标数据,结束目标数据的查询流程;
若字符串中目标数据的取值不为该拖底数据,则将字符串转化为对象,并判断对象是否空,只有在对象不为空的情况下才说明从数据读取单元中读取到目标数据,反之如果对象为空则说明没有从数据读取单元中读取到目标数据,继而执行下述步骤S304。
进一步,在上述字符串中目标数据的取值不为空的情况下,说明从处理服务器内存或缓存服务器中读取到了目标数据取值的字符串,此时,如果是从缓存服务器中读取到了目标数据取值的字符串,则需要对本发明实施例增设的处理服务器内存中的目标数据取值进行实时更新。基于此,可以设置一个标识符。具体包括:
根据数据读取单元的设定来源预先配置上述标识符,例如,标识符的默认初始值设定为flag=0,在步骤S301,根据处理服务器的内存对目标数据取值的更新状况,将处理服务器的内存确定为数据读取单元的情况下,则不更新标识符flag的取值;在将缓存服务器为数据读取单元的情况下,更新标识符flag的取值,设定flag=1;
获取上述设置好取值的标识符,在上述字符串中目标数据的取值不为空的情况下,根据标识符判断数据读取单元是缓存服务器还是处理服务器的内存,其中,在数据读取单元是缓存服务器的情况下,通过字符串更新处理服务器的内存中的目标数据,具体可以先初始化处理服务器的内存中目标数据的内容,然后将缓存中目标数据的内容存储在处理服务器的内存中;反之,则执行后续步骤。从而,较为便捷地判断出上述字符串是从处理服务器内存还是从缓存服务器中读取到的,有利于数据查询流程的快速执行。
步骤S304,在没有从数据读取单元中读取到目标数据的情况下,从数据库服务器读取目标数据。
需要说明的是,在从数据读取单元中读取到目标数据的情况下,则不再访问数据库服务器,直接将读取到的目标数据返回给客户端。
针对本发明实施例的三层数据存储结构,从数据库服务器读取目标数据,具体包括:
查询数据库服务器,以获取所述目标数据的对象集合;
判断对象集合中是否有所述目标数据取值;
在对象集合中有所述目标数据取值的情况下,将对象转化为字符串,并将转化得到的字符串更新到缓存服务器和处理服务器的内存中;
在对象集合中没有所述目标数据取值的情况下,代表数据库服务器中没有数据,则更新缓存服务器和处理服务器的内存中的目标数据取值为1。
本发明实施例先从处理服务器的内存和缓存服务器中选取数据读取单元,然后根据读取结果判断是否进一步从数据库服务器中读取目标数据,实现了兼顾数据更新状况的情况下保证根据查询优先级查询多个存储单元的目的,并且通过标识信息、标识符、拖底数据提高了三层数据存储结构中数据存与取的便捷性。
图4所示是本发明实施例的数据查询系统的结构框图。参照图4,数据查询系统包括:
接收模块100,用于接收预设客户端类别中任一个客户端发送的数据访问请求,且数据访问请求为获取目标数据的请求;
查询获取模块200,用于根据查询优先级查询多个存储单元,以获取目标数据,其中,多个存储单元按照查询优先级从大到小的顺序排列为:处理服务器的内存、缓存服务器、数据库服务器;
数据返回模块300,用于将获取到的目标数据返回给客户端。
本发明实施例中,数据查询系统在接收到预设客户端类别中任一个客户端发送的数据访问请求时,优先从处理服务器的内存中查询数据,因而,将不同客户端类别的数据访问请求分发到不同的处理服务器上,避免了请求都压在某一台缓存服务器上,减轻了缓存服务器的任务响应压力;而且,处理服务器内存的处理速度要快于缓存服务器,且从处理服务器的内存中查询数据减少了数据的网络传输时间,从而较大程度上提升了数据访问请求的响应速度,对于缓存服务器的缓存数据是公共数据且数据量较大的情况,解决解决了数据访问请求响应时间较长的技术问题。
在可选的实施例中,查询获取模块,包括:
确定单元,用于根据处理服务器的内存对目标数据取值的更新状况,从处理服务器的内存和缓存服务器中确定数据读取单元;
第一读取单元,用于从数据读取单元中读取目标数据,得到读取结果;
判断单元,用于根据读取结果,判断是否从数据读取单元中读取到目标数据;
第二读取单元,用于在没有从数据读取单元中读取到目标数据的情况下,从数据库服务器读取目标数据。
在可选的实施例中,确定单元用于:
根据标识信息,判断处理服务器的内存是否将目标数据的取值更新到与缓存服务器一致;
在处理服务器的内存没有将目标数据的取值更新到与缓存服务器一致的情况下,将缓存服务器确定为数据读取单元;以及,
在处理服务器的内存将目标数据的取值更新到与缓存服务器一致的情况下,将处理服务器的内存确定为数据读取单元。
在可选的实施例中,标识信息包括缓存标识数据和内存标识数据,其中,
缓存标识数据为缓存服务器在将目标数据的数值更新到与数据库服务器一致时,更新得到的一个数据;
内存标识数据为处理服务器的内存将目标数据的数值更新到与缓存服务器一致时,根据缓存标识数据更新得到的一个数据。
在可选的实施例中,读取结果为目标数据以预设数据交换格式表示的字符串,判断单元用于:
判断字符串中目标数据的取值是否为空;
在字符串中目标数据的取值为空的情况下,确定没有从数据读取单元中读取到目标数据;以及,
在字符串中目标数据的取值不为空,且字符串转化的对象为空的情况下,确定没有从数据读取单元中读取到目标数据。
在可选的实施例中,判断单元用于:
在字符串中目标数据的取值不为空时,判断字符串中目标数据的取值是否为拖底数据,其中,拖底数据为数据库服务器中不存在数据的预设取值;
在字符串中目标数据的取值不为拖底数据的情况下,判断字符串转化的对象是否为空;
在字符串转化的对象为空的情况下,确定没有从数据读取单元中读取到目标数据。
在可选的实施例中,判断单元还用于:
在字符串中目标数据的取值不为空的情况下,读取标识符,其中,标识符的取值是根据数据读取单元的设定来源被预先配置;
根据标识符,判断数据读取单元是缓存服务器还是处理服务器的内存;
在数据读取单元是缓存服务器的情况下,通过字符串更新处理服务器的内存中的目标数据。
本发明一实施例的数据查询装置,包括:
存储器,用于存储计算机指令;
处理器,耦合到存储器,处理器被配置为基于存储器存储的计算机指令执行上述的数据查询方法。
图5示出的设备仅仅是数据查询装置的一个示例,不应对本发明实施例的功能和使用范围构成任何限制。参考图5,该数据查询装置包括通过总线连接的处理器501、存储器502和输入输出设备503。存储器502包括只读存储器(ROM)和随机访问存储器(RAM),存储器502内存储有执行系统功能所需的各种计算机指令和数据,处理器501从存储器502中读取各种计算机指令以执行各种适当的动作和处理。输入输出设备503包括键盘、鼠标等的输入部分;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分;包括硬盘等的存储部分;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分。存储器502还存储有以下的计算机指令以完成本发明实施例的数据查询方法规定的操作:接收预设客户端类别中任一个客户端发送的数据访问请求,且数据访问请求为获取目标数据的请求;根据查询优先级查询多个存储单元,以获取目标数据,其中,多个存储单元按照查询优先级从大到小的顺序排列为:处理服务器的内存、缓存服务器、数据库服务器;将获取到的目标数据返回给客户端。
相应地,本发明实施例提供一种计算机可读存储介质,该计算机可读存储介质存储有计算机指令,所述计算机指令被执行时实现上述数据查询方法所规定的操作。
附图中的流程图、框图图示了本发明实施例的系统、方法、装置的可能的体系框架、功能和操作,流程图和框图上的方框可以代表一个模块、程序段或仅仅是一段代码,所述模块、程序段和代码都是用来实现规定逻辑功能的可执行指令。也应当注意,所述实现规定逻辑功能的可执行指令可以重新组合,从而生成新的模块和程序段。因此附图的方框以及方框顺序只是用来更好的图示实施例的过程和步骤,而不应以此作为对发明本身的限制。
系统的各个模块或单元可以通过硬件、固件或软件实现。软件例如包括采用JAVA、C/C++/C#、SQL等各种编程语言形成的编码程序。虽然在方法以及方法图例中给出本发明实施例的步骤以及步骤的顺序,但是所述步骤实现规定的逻辑功能的可执行指令可以重新组合,从而生成新的步骤。所述步骤的顺序也不应该仅仅局限于所述方法以及方法图例中的步骤顺序,可以根据功能的需要随时进行调整。例如将其中的某些步骤并行或按照相反顺序执行。
根据本发明的系统和方法可以部署在单个或多个服务器上。例如,可以将不同的模块分别部署在不同的服务器上,形成专用服务器。或者,可以在多个服务器上分布式部署相同的功能单元、模块或系统,以减轻负载压力。所述服务器包括但不限于在同一个局域网以及通过Internet连接的多个PC机、PC服务器、刀片机、超级计算机等。
以上所述仅为本发明的优选实施例,并不用于限制本发明,对于本领域技术人员而言,本发明可以有各种改动和变化。凡在本发明的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (14)
1.一种数据查询方法,其特征在于,应用于对一类客户端的数据访问请求进行处理的处理服务器上且在三层数据存储结构中进行数据查询,所述数据查询方法包括:
所述处理服务器接收预设客户端类别中任一个客户端发送的数据访问请求,且所述数据访问请求为获取目标数据的请求;
根据查询优先级查询多个存储单元,以获取所述目标数据,其中,多个所述存储单元为:构成所述三层数据存储结构的所述处理服务器的内存、缓存服务器和数据库服务器,多个所述存储单元按照所述查询优先级从大到小的顺序排列为:所述处理服务器的内存、缓存服务器、数据库服务器;
将获取到的所述目标数据返回给所述客户端;
其中,所述处理服务器的内存对所述目标数据取值的更新状况根据标识信息确定,所述标识信息包括缓存标识数据和内存标识数据,其中,所述缓存标识数据为所述缓存服务器在将所述目标数据的数值更新到与所述数据库服务器一致时更新得到的一个数据,所述内存标识数据为所述处理服务器的内存将所述目标数据的数值更新到与所述缓存服务器一致时更新得到的一个数据且所述内存标识数据通过所述缓存标识数据的一个函数进行更新,
所述处理服务器对所述数据库服务器中不存在的数据设置预设取值作为拖底数据,以及在判断所述目标数据取值为所述拖底数据时结束查询。
2.根据权利要求1所述的数据查询方法,其特征在于,根据查询优先级查询多个存储单元,包括:
根据所述处理服务器的内存对所述目标数据取值的更新状况,从所述处理服务器的内存和所述缓存服务器中确定数据读取单元;
从所述数据读取单元中读取所述目标数据,得到读取结果;
根据所述读取结果,判断是否从所述数据读取单元中读取到所述目标数据;
在没有从所述数据读取单元中读取到所述目标数据的情况下,从所述数据库服务器读取所述目标数据。
3.根据权利要求2所述的数据查询方法,其特征在于,根据所述处理服务器的内存对所述目标数据取值的更新状况,从所述处理服务器的内存和所述缓存服务器中确定数据读取单元,包括:
根据所述内存标识数据,判断所述处理服务器的内存是否将所述目标数据的取值更新到与所述缓存服务器一致;其中,
在所述处理服务器的内存没有将所述目标数据的取值更新到与所述缓存服务器一致的情况下,将所述缓存服务器确定为所述数据读取单元;以及,
在所述处理服务器的内存将所述目标数据的取值更新到与所述缓存服务器一致的情况下,将所述处理服务器的内存确定为所述数据读取单元。
4.根据权利要求2所述的数据查询方法,其特征在于,所述读取结果为所述目标数据以预设数据交换格式表示的字符串,根据所述读取结果,判断是否从所述数据读取单元中读取到所述目标数据,包括:
判断所述字符串中所述目标数据的取值是否为空;
在所述字符串中所述目标数据的取值为空的情况下,确定没有从所述数据读取单元中读取到所述目标数据;以及,
在所述字符串中所述目标数据的取值不为空,且所述字符串转化的对象为空的情况下,确定没有从所述数据读取单元中读取到所述目标数据。
5.根据权利要求4所述的数据查询方法,其特征在于,在所述字符串中所述目标数据的取值不为空,且所述字符串转化的对象为空的情况下,确定没有从所述数据读取单元中读取到所述目标数据,包括:
在所述字符串中所述目标数据的取值不为空时,判断所述字符串中所述目标数据的取值是否为所述拖底数据;
在所述字符串中所述目标数据的取值不为所述拖底数据的情况下,判断所述字符串转化的对象是否为空;
在所述字符串转化的对象为空的情况下,确定没有从所述数据读取单元中读取到所述目标数据。
6.根据权利要求4所述的数据查询方法,其特征在于,在所述字符串中所述目标数据的取值不为空的情况下,还包括:
读取标识符,其中,所述标识符的取值是根据所述数据读取单元的设定来源被预先配置;
根据所述标识符,判断所述数据读取单元是所述缓存服务器还是所述处理服务器的内存;
在所述数据读取单元是所述缓存服务器的情况下,通过所述字符串更新所述处理服务器的内存中的所述目标数据。
7.一种数据查询系统,其特征在于,被设置在对一类客户端的数据访问请求进行处理的处理服务器上且在三层数据存储结构中进行数据查询,所述数据查询系统包括:
接收模块,用于接收预设客户端类别中任一个客户端发送的数据访问请求,且所述数据访问请求为获取目标数据的请求;
查询获取模块,用于根据查询优先级查询多个存储单元,以获取所述目标数据,其中,多个所述存储单元为:构成所述三层数据存储结构的所述处理服务器的内存、缓存服务器和数据库服务器,多个所述存储单元按照所述查询优先级从大到小的顺序排列为:所述处理服务器的内存、缓存服务器、数据库服务器;
数据返回模块,用于将获取到的所述目标数据返回给所述客户端;
其中,所述处理服务器的内存对所述目标数据取值的更新状况根据标识信息确定,所述标识信息包括缓存标识数据和内存标识数据,其中,所述缓存标识数据为所述缓存服务器在将所述目标数据的数值更新到与所述数据库服务器一致时更新得到的一个数据,所述内存标识数据为所述处理服务器的内存将所述目标数据的数值更新到与所述缓存服务器一致时更新得到的一个数据且所述内存标识数据通过所述缓存标识数据的一个函数进行更新,
所述处理服务器对所述数据库服务器中不存在的数据设置预设取值作为拖底数据,以及在判断所述目标数据取值为所述拖底数据时结束查询。
8.根据权利要求7所述的数据查询系统,其特征在于,所述查询获取模块,包括:
确定单元,用于根据所述处理服务器的内存对所述目标数据取值的更新状况,从所述处理服务器的内存和所述缓存服务器中确定数据读取单元;
第一读取单元,用于从所述数据读取单元中读取所述目标数据,得到读取结果;
判断单元,用于根据所述读取结果,判断是否从所述数据读取单元中读取到所述目标数据;
第二读取单元,用于在没有从所述数据读取单元中读取到所述目标数据的情况下,从所述数据库服务器读取所述目标数据。
9.根据权利要求8所述的数据查询系统,其特征在于,所述确定单元用于:
根据所述内存标识数据,判断所述处理服务器的内存是否将所述目标数据的取值更新到与所述缓存服务器一致;其中,
在所述处理服务器的内存没有将所述目标数据的取值更新到与所述缓存服务器一致的情况下,将所述缓存服务器确定为所述数据读取单元;以及,
在所述处理服务器的内存将所述目标数据的取值更新到与所述缓存服务器一致的情况下,将所述处理服务器的内存确定为所述数据读取单元。
10.根据权利要求8所述的数据查询系统,其特征在于,所述读取结果为所述目标数据以预设数据交换格式表示的字符串,所述判断单元用于:
判断所述字符串中所述目标数据的取值是否为空;
在所述字符串中所述目标数据的取值为空的情况下,确定没有从所述数据读取单元中读取到所述目标数据;以及,
在所述字符串中所述目标数据的取值不为空,且所述字符串转化的对象为空的情况下,确定没有从所述数据读取单元中读取到所述目标数据。
11.根据权利要求10所述的数据查询系统,其特征在于,所述判断单元用于:
在所述字符串中所述目标数据的取值不为空时,判断所述字符串中所述目标数据的取值是否为所述拖底数据;
在所述字符串中所述目标数据的取值不为所述拖底数据的情况下,判断所述字符串转化的对象是否为空;
在所述字符串转化的对象为空的情况下,确定没有从所述数据读取单元中读取到所述目标数据。
12.根据权利要求10所述的数据查询系统,其特征在于,所述判断单元还用于:
在所述字符串中所述目标数据的取值不为空的情况下,读取标识符,其中,所述标识符的取值是根据所述数据读取单元的设定来源被预先配置;
根据所述标识符,判断所述数据读取单元是所述缓存服务器还是所述处理服务器的内存;
在所述数据读取单元是所述缓存服务器的情况下,通过所述字符串更新所述处理服务器的内存中的所述目标数据。
13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令被执行时实现如权利要求1至6任一项所述的数据查询方法。
14.一种数据查询装置,其特征在于,包括:
存储器,用于存储计算机指令;
处理器,耦合到所述存储器,所述处理器被配置为基于所述存储器存储的计算机指令执行实现如权利要求1-6中任一项所述的数据查询方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910135391.0A CN109933585B (zh) | 2019-02-22 | 2019-02-22 | 数据查询方法和数据查询系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910135391.0A CN109933585B (zh) | 2019-02-22 | 2019-02-22 | 数据查询方法和数据查询系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109933585A CN109933585A (zh) | 2019-06-25 |
CN109933585B true CN109933585B (zh) | 2021-11-02 |
Family
ID=66985727
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910135391.0A Active CN109933585B (zh) | 2019-02-22 | 2019-02-22 | 数据查询方法和数据查询系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109933585B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111291079A (zh) * | 2020-02-20 | 2020-06-16 | 京东数字科技控股有限公司 | 一种数据的查询方法和装置 |
CN111581239A (zh) * | 2020-04-10 | 2020-08-25 | 支付宝实验室(新加坡)有限公司 | 缓存刷新方法和电子设备 |
CN111680018A (zh) * | 2020-04-26 | 2020-09-18 | 泰康保险集团股份有限公司 | 响应请求的方法、装置、设备及可读存储介质 |
CN112256700A (zh) * | 2020-10-19 | 2021-01-22 | 北京字节跳动网络技术有限公司 | 数据存储方法、装置、电子设备及计算机可读存储介质 |
CN112835842B (zh) * | 2021-03-05 | 2024-04-30 | 深圳市汇顶科技股份有限公司 | 端序处理方法、电路、芯片以及电子终端 |
CN113535716B (zh) * | 2021-06-23 | 2024-05-24 | 浙江中控信息产业股份有限公司 | 一种高效的数据存储及查询管理方法 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105574010A (zh) * | 2014-10-13 | 2016-05-11 | 阿里巴巴集团控股有限公司 | 数据查询方法及装置 |
CN105843892A (zh) * | 2016-03-22 | 2016-08-10 | 北京建飞无限科技有限公司 | 一种基于Ehcache的数据持久化方法、装置及系统 |
CN106202581A (zh) * | 2016-08-30 | 2016-12-07 | 北京奇艺世纪科技有限公司 | 一种数据搜索方法及装置 |
CN106933644A (zh) * | 2015-12-31 | 2017-07-07 | 北京国双科技有限公司 | 数据处理方法和装置 |
CN107122491A (zh) * | 2017-05-19 | 2017-09-01 | 深圳市优必选科技有限公司 | 用于数据交互的方法 |
CN108062418A (zh) * | 2018-01-05 | 2018-05-22 | 北京奇艺世纪科技有限公司 | 一种数据搜索方法、装置及服务器 |
CN108121709A (zh) * | 2016-11-28 | 2018-06-05 | 中兴通讯股份有限公司 | 一种搜索处理方法及装置 |
CN108647357A (zh) * | 2018-05-17 | 2018-10-12 | 阿里巴巴集团控股有限公司 | 数据查询的方法及装置 |
CN108780458A (zh) * | 2017-12-08 | 2018-11-09 | 深圳市大疆创新科技有限公司 | 一种页面缓存处理方法、装置和服务器 |
-
2019
- 2019-02-22 CN CN201910135391.0A patent/CN109933585B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105574010A (zh) * | 2014-10-13 | 2016-05-11 | 阿里巴巴集团控股有限公司 | 数据查询方法及装置 |
CN106933644A (zh) * | 2015-12-31 | 2017-07-07 | 北京国双科技有限公司 | 数据处理方法和装置 |
CN105843892A (zh) * | 2016-03-22 | 2016-08-10 | 北京建飞无限科技有限公司 | 一种基于Ehcache的数据持久化方法、装置及系统 |
CN106202581A (zh) * | 2016-08-30 | 2016-12-07 | 北京奇艺世纪科技有限公司 | 一种数据搜索方法及装置 |
CN108121709A (zh) * | 2016-11-28 | 2018-06-05 | 中兴通讯股份有限公司 | 一种搜索处理方法及装置 |
CN107122491A (zh) * | 2017-05-19 | 2017-09-01 | 深圳市优必选科技有限公司 | 用于数据交互的方法 |
CN108780458A (zh) * | 2017-12-08 | 2018-11-09 | 深圳市大疆创新科技有限公司 | 一种页面缓存处理方法、装置和服务器 |
CN108062418A (zh) * | 2018-01-05 | 2018-05-22 | 北京奇艺世纪科技有限公司 | 一种数据搜索方法、装置及服务器 |
CN108647357A (zh) * | 2018-05-17 | 2018-10-12 | 阿里巴巴集团控股有限公司 | 数据查询的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN109933585A (zh) | 2019-06-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109933585B (zh) | 数据查询方法和数据查询系统 | |
CN111078147B (zh) | 一种缓存数据的处理方法、装置、设备及存储介质 | |
CN111897638B (zh) | 分布式任务调度方法及系统 | |
CN108846753B (zh) | 用于处理数据的方法和装置 | |
US8856365B2 (en) | Computer-implemented method, computer system and computer readable medium | |
CN110427386B (zh) | 数据处理方法、装置及计算机存储介质 | |
CN111666293A (zh) | 数据库访问方法和装置 | |
CN108563776B (zh) | 离线数据获取方法及系统、服务器及存储介质 | |
CN111737564A (zh) | 一种信息查询方法、装置、设备及介质 | |
CN113271359A (zh) | 刷新缓存数据的方法、装置、电子设备和存储介质 | |
CN118113663A (zh) | 用于管理存储系统的方法、设备和计算机程序产品 | |
CN116932147A (zh) | 流式作业处理方法、装置、电子设备及介质 | |
CN113760638A (zh) | 一种基于kubernetes集群的日志服务方法和装置 | |
CN113360689B (zh) | 图像检索系统、方法、相关装置及计算机程序产品 | |
CN116185578A (zh) | 计算任务的调度方法和计算任务的执行方法 | |
CN113076343B (zh) | 数据查询方法、装置、设备及存储介质 | |
CN110389966B (zh) | 一种信息处理方法及装置 | |
US10114864B1 (en) | List element query support and processing | |
WO2018075009A1 (en) | Response caching | |
CN111782834A (zh) | 图像检索的方法、装置、设备及计算机可读存储介质 | |
CN112507100B (zh) | 一种问答系统的更新处理方法和装置 | |
CN112948461B (zh) | 日程数据处理的方法、设备、存储介质和程序产品 | |
CN113010196B (zh) | 补丁筛选方法、装置、设备和存储介质 | |
CN115509458A (zh) | 一种节点信息获取方法、装置、设备及存储介质 | |
CN110968598A (zh) | 数据请求管理方法、系统及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40006398 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |