CN108595505B - 数据查询的方法和装置 - Google Patents

数据查询的方法和装置 Download PDF

Info

Publication number
CN108595505B
CN108595505B CN201810229355.6A CN201810229355A CN108595505B CN 108595505 B CN108595505 B CN 108595505B CN 201810229355 A CN201810229355 A CN 201810229355A CN 108595505 B CN108595505 B CN 108595505B
Authority
CN
China
Prior art keywords
query
cache
data
tag
invalidation
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
Application number
CN201810229355.6A
Other languages
English (en)
Other versions
CN108595505A (zh
Inventor
李渠成
腾国凯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Advanced New Technologies Co Ltd
Advantageous New Technologies Co Ltd
Original Assignee
Advanced New Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Advanced New Technologies Co Ltd filed Critical Advanced New Technologies Co Ltd
Priority to CN201810229355.6A priority Critical patent/CN108595505B/zh
Publication of CN108595505A publication Critical patent/CN108595505A/zh
Application granted granted Critical
Publication of CN108595505B publication Critical patent/CN108595505B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本说明书实施例提供一种数据查询的方法,该方法包括:获取来自查询系统的查询请求,该查询请求用于请求查询数据库系统中的数据;获取查询请求所对应的缓存设置标签,其中包括缓存失效时间,以及自动失效标签;然后,根据上述缓存失效时间,确定查询请求对应的缓存数据是否失效。如果缓存数据已经失效,那么向数据库系统进行数据查询,接着,根据向数据库系统的数据查询的查询结果和上述自动失效标签的状态,向查询系统返回结果数据。还提供了与之对应的查询装置。如此,可以更加灵活高效地进行数据查询。

Description

数据查询的方法和装置
技术领域
本说明书一个或多个实施例涉及计算机技术领域,尤其涉及数据查询的方法和装置。
背景技术
随着计算机和互联网技术的发展,海量数据的存储和查询成为计算机处理系统中频繁使用的操作。一般地,为了应对海量数据的存储,通常将数据存储在云端的分布式存储系统中。对这些海量数据的查询如果都直接抵达存储系统,将会对存储系统造成极大的压力。因此,在一些方案中,在存储系统之前增加一个缓存层,例如TAIR缓存。外部系统进行数据查询时,先在缓存层进行查询,如果缓存数据不存在或者已经失效,再向存储系统进行查询。
然而,从实践结果看,这样的方式依然存在一些不足。在业务高峰期(例如集中促销等),仍然会有大量查询请求打穿到存储系统,给存储系统带来较大压力。在这样的情况下,如果存储系统出现抖动,即服务不稳定,会导致较多的查询报错,系统可用性难以得到保证。并且,对缓存层的访问策略需要写入到进行查询的外部系统的业务代码中,增加代码侵入的风险,也使得业务代码的代码冗余度高,扩展性不好。
因此,希望能有改进的方案,能够更加灵活高效地进行数据查询。
发明内容
本说明书一个或多个实施例描述了一种方法和装置,能够灵活高效地进行数据查询。
根据第一方面,提供了一种数据查询的方法,包括:获取来自查询系统的查询请求,所述查询请求用于请求查询数据库系统中的数据;获取所述查询请求所对应的缓存设置标签,所述缓存设置标签至少包括缓存失效时间,以及自动失效标签;根据所述缓存失效时间,确定所述查询请求对应的缓存数据是否失效;在所述缓存数据已失效的情况下,向所述数据库系统进行数据查询;根据所述数据查询的查询结果和所述自动失效标签,向所述查询系统返回结果数据。
在一个实施例中,在获取来自查询系统的查询请求之前,方法还包括:接收针对所述查询请求的配置信息,所述配置信息包括对所述缓存失效时间和自动失效标签中的至少一项的配置;为所述查询请求配置所述缓存设置标签,其中包括,根据所述配置信息,设置所述缓存失效时间和自动失效标签中的所述至少一项;存储所述查询请求的缓存设置标签。
根据一个实施例,通过以下方式获取所述查询请求所对应的缓存设置标签:确定所述查询请求对应的缓存key值;根据所述缓存key值,获取所述缓存设置标签。
在一个实施例中,通过以下方式确定查询请求对应的缓存数据是否失效:获取缓存数据存入时间以及当前时间;确定当前时间与缓存数据存入时间的差值;当所述差值大于所述缓存失效时间的情况下,确定所述缓存数据已失效。
根据一个实施例,在缓存数据未失效的情况下,将所述缓存数据返回给所述查询系统。
根据一个实施例,在向数据库进行数据查询的查询结果为查询出错的情况下,执行以下步骤:确定所述自动失效标签的状态;在所述自动失效标签的状态为第一状态的情况下,将所述缓存数据作为结果数据返回给所述查询系统,其中所述第一状态指示出允许所述缓存数据不自动失效。
在一个实施例中,在自动失效标签的状态为所述第一状态的情况下,还将所述缓存数据的存入时间更新为当前时间。
在一个实施例中,在自动失效标签的状态为第二状态的情况下,将错误信息作为结果数据返回给所述查询系统,其中所述第二状态指示出所述缓存数据到期自动失效。
根据一个实施例,在向数据库系统进行数据查询的查询结果为查询成功的情况下,执行以下步骤:从所述数据库系统获取返回的查询数据;用所述查询数据更新所述缓存数据;将所述查询数据作为结果数据,返回给所述查询系统。
根据第二方面,提供一种数据查询的装置,包括:请求获取模块,配置为获取来自查询系统的查询请求,所述查询请求用于请求查询数据库系统中的数据;标签获取模块,配置为获取所述查询请求所对应的缓存设置标签,所述缓存设置标签至少包括缓存失效时间,以及自动失效标签;失效确定模块,配置为根据所述缓存失效时间,确定所述查询请求对应的缓存数据是否失效;查询模块,配置为在所述缓存数据已失效的情况下,向所述数据库系统进行数据查询;结果返回模块,配置为根据所述数据查询的查询结果和所述自动失效标签,向所述查询系统返回结果数据。
根据第三方面,提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行第一方面的方法。
根据第四方面,提供了一种计算设备,包括存储器和处理器,其特征在于,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现第一方面的方法。
通过本说明书实施例提供的数据查询方法和装置,允许管理人员人工配置和干预查询请求的缓存策略,特别是配置缓存设置标签中的缓存失效时间和自动失效标签的状态。如此,可以人为地将一部分缓存数据设置为“可续展”的缓存数据。当接收到的查询请求要求读取这样的缓存数据,而缓存数据已经失效,并且从数据库系统调用数据也失败的情况下,通过续展缓存数据的有效期,再次使用这部分缓存数据,如此减少数据库系统的报错比例,提高系统可用性。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本说明书披露的一个实施例的实施场景示意图;
图2示出根据一个实施例的缓存配置方法流程图;
图3示出根据一个实施例的数据查询的方法流程图;
图4示出根据一个实施例的数据查询装置的示意性框图。
具体实施方式
下面结合附图,对本说明书提供的方案进行描述。
图1为本说明书披露的一个实施例的实施场景示意图。在图1中,数据存储在数据库系统100中,该数据库系统100可以是位于云端的分布式存储系统。多个进行查询的业务实体,如图1所示的业务实体A,B和C,均可以向数据库系统请求查询数据。这些业务实体可以是执行各种不同业务的服务器,例如支付宝服务器,淘宝服务器等。在下面的描述中,不管是执行何种业务的业务实体,在向数据库系统请求查询的情况下,都将其称为查询系统。查询系统在图1中示出为400。为了避免所有查询请求直达数据库系统带来的压力,在数据库系统之前提供有缓存层200和产品层300,缓存层200用于存储查询请求可能用到的缓存数据,产品层300根据业务实体的业务类型进行预先的数据处理。
根据本说明书的实施例,为了提高整个系统的数据查询可用性,在产品层300中增加一个高可用的查询器。该查询器可以允许人工配置一些缓存设置,包括缓存数据的失效时间,是否自动失效的设置等,如此可以对缓存设置进行人工干预,使之符合不同业务场景的需要。并且,可以通过增加是否自动失效的设置标签,人为地将一部分缓存数据设置为“可续展”的缓存数据。当接收到的查询请求要求读取这样的缓存数据,而缓存数据已经失效,并且从数据库系统调用数据也失败的情况下,通过续展缓存数据的有效期,再次使用这部分缓存数据,如此减少数据库系统抖动带来的影响,提高系统可用性。下面具体描述上述查询器的执行逻辑和实现方式。
图2示出根据一个实施例的缓存配置方法流程图,该方法流程的执行主体可以是图1所示的查询器,并且该方法流程可以在执行数据查询之前预先执行。
如图2所示,在一个实施例中,缓存配置方法可以包括:步骤21,接收针对至少一个查询请求的配置信息,所述配置信息包括对查询请求所对应的缓存数据的缓存失效时间和自动失效标签中至少一项的配置。
具体而言,执行上述方法的查询器可以提供一个人工配置接口,该接口允许管理人员输入配置信息,从而对查询请求可能用到的缓存数据的缓存策略进行配置和人工干预。可以理解,每个查询请求具有对应的查询方法或查询函数,这又称为查询接口。各个查询请求可能调用同样的查询接口,但是具有不同的参数。例如,两个查询请求Q1和Q2可能都调用同样的查询方法,例如与搜索相关的特定方法SM,但是与搜索相关的参数并不相同。在一个实施例中,管理人员针对不同的查询接口进行缓存策略配置,例如针对调用第一查询方法的查询请求设置第一配置信息,针对调用第二查询方法的查询请求设置第二配置信息。如此,上述查询请求Q1和Q2可以具有相同的配置信息。在另一实施例中,管理人员还有可能采取不同的分析粒度,针对各种查询请求设置配置信息。例如,可以针对查询请求Q1和Q2设置不同的配置信息。
在一个实施例中,管理人员可以在配置信息中设置,查询请求所对应的缓存数据的缓存失效时间。可以理解,尽管各种系统有可能根据业务需要,为不同缓存数据设置有不同的缓存失效时间,但是常规系统中的缓存失效时间由系统统一设置,一旦设置之后是固定无法更改的。然而,在以上步骤21中,允许管理人员在配置信息中为缓存数据设置缓存失效时间。如此,管理人员可以根据需要,为不同查询请求的缓存数据设置不同的缓存失效时间。一般地,可以将缓存失效时间设置为从几秒、几小时,到几天的时间,不一而足。
在一个实施例中,缓存失效时间根据查询请求对应的查询接口的类型而设定。例如,某些类型的查询接口所对应的数据更新周期较长,那么将这类查询接口对应的缓存失效时间设置为较长时间;相反,如果一些类型的查询接口所对应的数据更新周期很短,更改频繁,那么可以将这类查询接口对应的缓存失效时间设置为较短的时间。在一个实施例中,缓存失效时间的设置还可以根据其他因素确定,例如数据类型,查询频次等等。
在一个实施例中,管理人员可以在配置信息中设置,查询请求所对应的自动失效标签,也就是,该查询请求所对应的缓存数据是否会自动失效。更具体地,上述自动失效标签可以被设置为两个状态,第一状态指示出允许对应缓存数据不自动失效,也就是说,该缓存数据的有效期可被续展;第二状态指示出,对应缓存数据到期自动失效,也就是说,该缓存数据的有效期不能续展。管理人员可以在配置信息中包含对上述自动失效标签的状态指示,从而对各个查询请求对应的缓存数据的有效期选择性进行续展。这两种状态例如可以用自动失效ON和OFF表示,例如OFF对应第一状态,ON对应第二状态。
在一个实施例中,管理人员还可以在配置信息中设置更多的缓存策略,例如缓存数据失效之后的处理方式,缓存数据key值的确定方式等等。
通过以上的配置信息,管理人员可以对查询请求对应的缓存设置进行人工干预和个性化配置,例如,在集中促销等业务高峰期间,针对某些热点缓存进行特殊设置。
从查询器的执行角度,在步骤21接收到以上描述的配置信息之后,在步骤22,至少根据所述配置信息,对查询请求进行缓存配置。换而言之,对查询请求进行“打标”,为其配置缓存设置标签以及其他缓存策略信息,这其中包括根据上述配置信息设定缓存设置标签。
缓存设置标签和缓存策略信息指示出一个查询请求对应的缓存方式。一般地,缓存设置标签可以包括,缓存数据的缓存失效时间,自动失效标签,缓存数据存入时间等。打标过程还可以设置其他缓存策略信息,包括缓存key值的计算等。在上述缓存设置标签中,缓存失效时间和自动失效标签可以根据管理人员输入的配置信息而设定。
具体地,如果配置信息中包含对某个查询请求的缓存失效时间的设定,那么在该查询请求对应的缓存设置标签中,对应设置缓存失效时间。如果配置信息中包含对某个查询请求的自动失效标签的状态设定,那么在该查询请求对应的缓存设置标签中,对应设置自动失效标签的状态。可以理解,上述配置信息是管理人员人工配置的信息,对于配置信息中未指定的标签内容,可以根据预设规则或者默认设置,在缓存设置标签中对其进行设定。
接着,在步骤23,存储所述查询请求的缓存设置标签。在一个实施例中,用键值对key-value的方式,将各个查询请求的缓存设置标签存储在查询器的缓存模块中。本领域技术人员知道,key-value方式以key值作为索引进行存储和查询,特别适合于分布式存储系统中的快速查询。在存储查询请求的相关信息的情况下,由于查询请求可能包含数量较多的参数,例如几十个,甚至上百个,可以从中选择一部分参数,例如10个参数作为key值,进行存储和查询。在一个实施例中,有些查询请求对应的key值仍然过长,可以针对这样的key值进行编码转换,例如转换为MD5编码。Key值的确定方式,是否进行编码转换,以及编码转换的算法可以在步骤22为各个查询请求设定的其他缓存策略中规定。在一个实施例中,在上述缓存模块中存储已进行打标的查询请求的key值,对应value,以及缓存设置标签中的标签值,例如缓存失效时间值。可以理解,还可以采用其他格式存储各个查询请求的缓存设置标签。
通过图2的方式,为各个查询请求设置了缓存设置标签,其中包括根据管理人员人工配置的配置信息而设定的缓存失效时间和/或自动失效标签。如此,在后续进行数据查询时,可以根据上述缓存设置标签,更具灵活地进行数据查询。
图3示出根据一个实施例的数据查询的方法流程图。可以理解,该方法流程可以在执行了图2所示的方法的基础上执行。该方法流程的执行主体仍然是图1所示的查询器,该查询器位于查询系统和数据库系统之间,对查询系统向数据库系统发出的查询请求进行分析、处理和转达,从而优化查询效率。
如图3所示,在该方法中,首先在步骤301,获取来自查询系统的查询请求。如前所述,执行该方法的查询器位于查询系统和数据库系统之间,因此可以设置为拦截或截获来自查询系统的查询请求,而该查询请求用于请求查询数据库系统的数据。
接着,在步骤302,判断是否存在与查询请求对应的缓存设置标签。如结合图2所述,针对一些查询请求,已经根据管理人员的配置信息为其配置了缓存设置标签。然而,部分查询请求可能并不具有对应的缓存设置标签。这可能是由于,例如在图2的过程中并未针对该查询请求对应的接口类型进行设置,或者因为该查询请求首次出现,并未存在关于该查询请求的任何缓存数据,或者其他原因。如果在步骤302中经过查询判断,不存在与查询请求对应的缓存设置标签,那么执行步骤303,直接向数据库系统请求查询数据。如果存在与该查询请求对应的缓存设置标签,那么执行步骤304。
在步骤304,获取上述查询请求对应的缓存设置标签。具体地,在一个实施例中,查询请求的缓存配置情况以key-value的形式存储在缓存模块中。在这样的情况下,步骤304可以进一步包括,首先确定所述查询请求对应的缓存key值;根据所述缓存key值,获取所述查询请求对应的缓存设置标签。在一个实施例中,上述缓存设置标签中至少包括缓存失效时间,以及自动失效标签。在获取缓存设置标签后,可以对其进行解析,从中提取出缓存失效时间和自动失效标签。
接着,在步骤305,根据上述缓存失效时间,确定所述查询请求对应的缓存数据是否失效。更具体地,该步骤可以包括:获取缓存数据存入时间以及当前时间;确定当前时间与缓存数据存入时间的差值;根据所述差值比与缓存失效时间的比较,确定缓存数据是否失效。当所述差值大于缓存失效时间的情况下,确定所述缓存数据已失效;否则,确定缓存数据未失效。例如,假定缓存失效时间被管理人员人工设置为1h。如果缓存数据存入时间为9:05,当前时间为10:10,那么时间差值为65min,大于设置的缓存失效时间,这样的情况下,判定缓存数据已经失效。如果当前时间与缓存数据存入时间的差值小于1h,则判定缓存数据未失效。
如果缓存数据未失效,那么执行步骤306,从缓存层读取该查询请求的缓存数据,将缓存数据返回给查询系统。
如果步骤305的判定结果为缓存数据已失效,则执行步骤307。
在步骤307,根据查询请求向数据库系统进行数据查询。也就是说,将查询请求转发到下游的数据库系统,向数据库系统进行数据查询。
接下来,根据向数据库系统的数据查询的查询结果和上述自动失效标签的状态,向查询系统返回结果数据。
具体地,上述过程包括,在步骤308,判断向数据库系统的数据查询是否成功。这可以通过从数据库系统返回的数据消息来判断。如果数据库系统返回的是出错消息,那么数据查询不成功;如果数据库系统返回的是查询数据,那么查询成功。
在查询成功的情况下,可以获取数据库系统所返回的查询数据,此时流程还执行步骤309和310,在步骤309,用数据库系统返回的查询数据更新查询请求所对应的缓存数据。这包括更新缓存数据的存入时间等。在步骤310,将上述查询数据作为结果数据,返回给查询系统。可以理解,步骤309和310的执行顺序可以互换,也可以并行执行。
如果步骤308的判定结果为查询不成功,那么执行步骤311的分支。在步骤311,确定自动失效标签的状态。如前所述,自动失效标签是可以由管理人员人工配置的标签,该标签可以被设置为两种状态:第一状态(例如自动失效OFF状态)指示出允许对应缓存数据不自动失效,也就是说,该缓存数据的有效期可被续展;第二状态(例如自动失效ON状态)指示出,对应缓存数据到期自动失效,也就是说,该缓存数据的有效期不能续展。
如果自动失效标签具有第二状态,那么对应的缓存数据必须失效,无法继续使用,那么在步骤312,向查询系统返回错误信息。
如果自动失效标签具有第一状态,则意味着,对应的缓存数据是“可续展”的,可以继续使用。那么流程执行步骤313,将所述缓存数据作为结果数据返回给查询系统,如此,再次使用“可续展”的缓存数据。
在一个实施例中,在自动失效标签具有第一状态的情况下,还执行步骤314,在其中将缓存数据的存入时间更新为当前时间,也就是,将原有缓存数据再次放入缓存层中。如此使得这部分缓存数据的有效期延长一个失效周期。
通过图3的流程图可以看到,在查询过程中,根据查询请求对应的缓存设置标签来决定返回数据,而缓存设置标签中的缓存失效时间,以及自动失效标签,是可以由管理人员通过配置信息人工干预的。并且,由于增加了自动失效标签,可以人为地将一部分缓存数据设置为“可续展”的缓存数据。当接收到的查询请求要求读取这样的缓存数据,而缓存数据已经失效,并且从数据库系统调用数据也失败的情况下,通过续展缓存数据的有效期,再次使用这部分缓存数据,如此减少数据库系统的报错比例,提高系统可用性。
根据另一方面的实施例,还提供一种数据查询的装置。图4示出根据一个实施例的数据查询装置的示意性框图,其中示出查询装置40。可以理解,该查询装置40可以对应于图1所示的查询器。查询装置40可以包括缓存配置组件41,用于根据管理人员需要进行缓存配置,还包括查询处理器42,用于根据缓存配置,来推进查询请求的处理流程。
如图4所示,缓存配置组件41可以包括配置模块411,打标模块412以及缓存模块413。
配置模块411可以作为查询装置40的人工配置接口,接收管理人员针对查询请求的配置信息,从而允许对查询请求可能用到的缓存数据的缓存策略进行配置和人工干预。管理人员可以在配置信息中包括对查询请求对应的缓存失效时间和自动失效标签中至少一项的配置。例如,可以为不同接口类型的查询请求对应的缓存数据设置不同的缓存失效时间;可以为自动失效标签设置两个状态,第一状态(例如自动失效OFF)指示出允许对应缓存数据不自动失效,可以续展使用;第二状态(例如自动失效ON)指示出对应缓存数据到期自动失效,不能续展。
打标模块412用于为查询请求进行“打标”,也就是为其配置缓存设置标签以及其他缓存策略信息,这其中包括,根据配置模块411接收的配置信息,设置缓存失效时间和自动失效标签中的至少一项。
缓存模块413用于存储打标模块412为查询请求配置的缓存设置标签。在一个实施例中,缓存模块413采用分布式设计,在其中用键值对key-value的方式,存储各个查询请求的缓存设置标签。
在通过缓存配置组件41为查询请求进行缓存配置的基础上,可以利用查询处理器42进行数据查询。如图4所示,查询处理器42包括,请求获取模块421,配置为获取来自查询系统的查询请求,所述查询请求用于请求查询数据库系统中的数据;标签获取模块422,配置为获取所述查询请求所对应的缓存设置标签,所述缓存设置标签至少包括缓存失效时间,以及自动失效标签;失效确定模块423,配置为根据所述缓存失效时间,确定所述查询请求对应的缓存数据是否失效;查询模块424,配置为在所述缓存数据已失效的情况下,向所述数据库系统进行数据查询;以及结果返回模块425,配置为根据所述数据查询的查询结果和所述自动失效标签,向所述查询系统返回结果数据。
在一个实施例中,上述标签获取模块422配置为:确定查询请求对应的缓存key值;并且根据所述缓存key值,从所述缓存模块413获取所述缓存设置标签。
根据一个实施例,上述失效确定模块423配置为:获取缓存数据存入时间以及当前时间;确定当前时间与缓存数据存入时间的差值;当所述差值大于所述缓存失效时间的情况下,确定所述缓存数据已失效。
在一个实施例中,查询处理器42还包括缓存数据返回模块(图4中未示出),配置为:在上述失效确定模块423确定缓存数据未失效的情况下,将所述缓存数据返回给查询系统。
根据一个实施例,上述结果返回模块425配置为:
在查询模块424向数据库系统进行数据查询的查询结果为查询出错的情况下,确定自动失效标签的状态;
在所述自动失效标签的状态为第一状态的情况下,将缓存数据作为结果数据返回给查询系统,其中所述第一状态指示出允许所述缓存数据不自动失效。
在一个实施例中,上述结果返回模块425还配置为:在上述自动失效标签的状态为所述第一状态的情况下,还将所述缓存数据的存入时间更新为当前时间。
根据一种实施方式,上述结果返回模块425配置为:在自动失效标签的状态为第二状态的情况下,将错误信息作为结果数据返回给查询系统,其中所述第二状态指示出所述缓存数据到期自动失效。
在另一实施例中,上述结果返回模块425配置为:在查询模块424向数据库系统进行数据查询的查询结果为查询成功的情况下,从数据库系统获取返回的查询数据;用所述查询数据更新所述缓存数据;并将所述查询数据作为结果数据,返回给查询系统。
由此可见,通过查询装置40中的缓存配置组件41,允许管理人员人工配置和干预查询请求的缓存策略,特别是配置缓存设置标签中的缓存失效时间和自动失效标签的状态。如此,可以人为地将一部分缓存数据设置为“可续展”的缓存数据。当接收到的查询请求要求读取这样的缓存数据,而缓存数据已经失效,并且从数据库系统调用数据也失败的情况下,通过续展缓存数据的有效期,再次使用这部分缓存数据,如此减少数据库系统的报错比例,提高系统可用性。此外,以上逻辑的执行由独立的查询装置执行,不会侵入到进行查询的业务实体的业务代码中,从而具有很高的通用性。
根据另一方面的实施例,还提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行结合图2和图3所描述的方法。
根据再一方面的实施例,还提供一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现结合图2和图3所述的方法。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。

Claims (18)

1.一种数据查询的方法,包括:
获取来自查询系统的查询请求,所述查询请求用于请求查询数据库系统中的数据;
获取所述查询请求所对应的缓存设置标签,所述缓存设置标签至少包括缓存失效时间,以及自动失效标签;
根据所述缓存失效时间,确定所述查询请求对应的缓存数据是否失效;
在所述缓存数据已失效的情况下,向所述数据库系统进行数据查询;
根据所述数据查询的查询结果和所述自动失效标签,向所述查询系统返回结果数据,包括:
在所述查询结果为查询出错的情况下,确定所述自动失效标签的状态;
在所述自动失效标签的状态为第一状态的情况下,将所述缓存数据作为结果数据返回给所述查询系统,其中所述第一状态指示出允许所述缓存数据不自动失效。
2.根据权利要求1所述的方法,其中在获取来自查询系统的查询请求之前,还包括:
接收针对所述查询请求的配置信息,所述配置信息包括对所述缓存失效时间和自动失效标签中的至少一项的配置;
为所述查询请求配置所述缓存设置标签,其中包括,根据所述配置信息,设置所述缓存失效时间和自动失效标签中的所述至少一项;
存储所述查询请求的缓存设置标签。
3.根据权利要求2所述的方法,其中获取所述查询请求所对应的缓存设置标签包括:
确定所述查询请求对应的缓存key值;
根据所述缓存key值,获取所述缓存设置标签。
4.根据权利要求1所述的方法,其中根据所述缓存失效时间,确定所述查询请求对应的缓存数据是否失效包括:
获取缓存数据存入时间以及当前时间;
确定当前时间与缓存数据存入时间的差值;
当所述差值大于所述缓存失效时间的情况下,确定所述缓存数据已失效。
5.根据权利要求1所述的方法,还包括:
在所述缓存数据未失效的情况下,将所述缓存数据返回给所述查询系统。
6.根据权利要求1所述的方法,还包括:
在所述自动失效标签的状态为所述第一状态的情况下,将所述缓存数据的存入时间更新为当前时间。
7.根据权利要求1所述的方法,其中根据所述数据查询的查询结果和所述自动失效标签的状态,向所述查询系统返回结果数据包括:
在所述自动失效标签的状态为第二状态的情况下,将错误信息作为结果数据返回给所述查询系统,其中所述第二状态指示出所述缓存数据到期自动失效。
8.根据权利要求1所述的方法,其中根据所述数据查询的查询结果和所述自动失效标签的状态,向所述查询系统返回结果数据包括:
在所述查询结果为查询成功的情况下,从所述数据库系统获取返回的查询数据;
用所述查询数据更新所述缓存数据;
将所述查询数据作为结果数据,返回给所述查询系统。
9.一种数据查询的装置,包括:
请求获取模块,配置为获取来自查询系统的查询请求,所述查询请求用于请求查询数据库系统中的数据;
标签获取模块,配置为获取所述查询请求所对应的缓存设置标签,所述缓存设置标签至少包括缓存失效时间,以及自动失效标签;
失效确定模块,配置为根据所述缓存失效时间,确定所述查询请求对应的缓存数据是否失效;
查询模块,配置为在所述缓存数据已失效的情况下,向所述数据库系统进行数据查询;
结果返回模块,配置为根据所述数据查询的查询结果和所述自动失效标签,向所述查询系统返回结果数据,其中所述结果返回模块配置为:
在所述查询结果为查询出错的情况下,确定所述自动失效标签的状态;
在所述自动失效标签的状态为第一状态的情况下,将所述缓存数据作为结果数据返回给所述查询系统,其中所述第一状态指示出允许所述缓存数据不自动失效。
10.根据权利要求9所述的装置,还包括配置模块,打标模块以及缓存模块,其中:
所述配置模块用于接收针对所述查询请求的配置信息,所述配置信息包括对所述缓存失效时间和自动失效标签中的至少一项的配置;
打标模块用于为所述查询请求配置所述缓存设置标签,其中包括,根据所述配置信息,设置所述缓存失效时间和自动失效标签中的所述至少一项;
缓存模块用于存储所述查询请求的缓存设置标签。
11.根据权利要求10所述的装置,其中所述标签获取模块配置为:
确定所述查询请求对应的缓存key值;
根据所述缓存key值,从所述缓存模块获取所述缓存设置标签。
12.根据权利要求9所述的装置,其中所述失效确定模块配置为:
获取缓存数据存入时间以及当前时间;
确定当前时间与缓存数据存入时间的差值;
当所述差值大于所述缓存失效时间的情况下,确定所述缓存数据已失效。
13.根据权利要求12所述的装置,还包括缓存数据返回模块,配置为:
在所述缓存数据未失效的情况下,将所述缓存数据返回给所述查询系统。
14.根据权利要求9所述的装置,其中所述结果返回模块还配置为:
在所述自动失效标签的状态为所述第一状态的情况下,将所述缓存数据的存入时间更新为当前时间。
15.根据权利要求9所述的装置,其中所述结果返回模块配置为:
在所述自动失效标签的状态为第二状态的情况下,将错误信息作为结果数据返回给所述查询系统,其中所述第二状态指示出所述缓存数据到期自动失效。
16.根据权利要求9所述的装置,其中所述结果返回模块配置为:
在所述查询结果为查询成功的情况下,从所述数据库系统获取返回的查询数据;
用所述查询数据更新所述缓存数据;
将所述查询数据作为结果数据,返回给所述查询系统。
17.一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行权利要求1-8中任一项的所述的方法。
18.一种计算设备,包括存储器和处理器,其特征在于,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现权利要求1-8中任一项所述的方法。
CN201810229355.6A 2018-03-20 2018-03-20 数据查询的方法和装置 Active CN108595505B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810229355.6A CN108595505B (zh) 2018-03-20 2018-03-20 数据查询的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810229355.6A CN108595505B (zh) 2018-03-20 2018-03-20 数据查询的方法和装置

Publications (2)

Publication Number Publication Date
CN108595505A CN108595505A (zh) 2018-09-28
CN108595505B true CN108595505B (zh) 2022-06-24

Family

ID=63626759

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810229355.6A Active CN108595505B (zh) 2018-03-20 2018-03-20 数据查询的方法和装置

Country Status (1)

Country Link
CN (1) CN108595505B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109656958B (zh) * 2018-12-18 2021-11-16 北京小米移动软件有限公司 数据查询方法以及系统
CN110489447B (zh) * 2019-07-16 2022-05-27 招联消费金融有限公司 数据查询方法、装置、计算机设备和存储介质
CN110928904A (zh) * 2019-10-31 2020-03-27 北京浪潮数据技术有限公司 一种数据查询方法、装置及相关组件
CN111046070B (zh) * 2019-11-21 2023-08-18 深圳前海环融联易信息科技服务有限公司 一种智能缓存数据方法、装置、计算机设备及存储介质
CN113138993A (zh) * 2020-01-19 2021-07-20 上海臻客信息技术服务有限公司 一种基于redis的酒店信息更新方法、装置、设备及介质
CN112732751B (zh) * 2020-12-30 2023-04-28 北京懿医云科技有限公司 一种医学数据处理方法、装置、存储介质及设备

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101090401B (zh) * 2007-05-25 2011-05-18 金蝶软件(中国)有限公司 一种群集环境下的数据缓存方法及系统
CN102779132B (zh) * 2011-05-12 2014-11-19 阿里巴巴集团控股有限公司 数据更新方法、系统及数据库服务器
CN105389311B (zh) * 2014-09-04 2019-04-09 阿里巴巴集团控股有限公司 一种用于确定查询结果的方法与设备

Also Published As

Publication number Publication date
CN108595505A (zh) 2018-09-28

Similar Documents

Publication Publication Date Title
CN108595505B (zh) 数据查询的方法和装置
CN107633016B (zh) 数据处理方法及装置和电子设备
WO2017219848A1 (zh) 分布式数据库中id的处理方法、管理系统及服务器
US9864684B2 (en) Performing efficient cache invalidation
CN112613993B (zh) 交易数据处理方法、装置、计算机设备和存储介质
CN109918191B (zh) 一种业务请求防频的方法和装置
US11500755B1 (en) Database performance degradation detection and prevention
US11082519B2 (en) System and method of providing web content using a proxy cache
CN112882647A (zh) 存储和访问数据的方法、电子设备和计算机程序产品
US20130311425A1 (en) Database update notification method
US20110264767A1 (en) Interactive processing method and apparatus between content-id management servers
US9928174B1 (en) Consistent caching
US10685019B2 (en) Secure query interface
US8554889B2 (en) Method, system and apparatus for managing computer identity
CN111125170A (zh) 一种微服务的跨服务数据获取方法、装置及微服务设备
US20200202005A1 (en) Automated Software Vulnerability Determination
CN114860782B (zh) 数据查询方法、装置、设备及介质
CN109783499B (zh) 一种数据缓存方法、装置和服务器
US10185735B2 (en) Distributed database system and a non-transitory computer readable medium
CN110083509B (zh) 一种日志数据的规整方法及装置
US11442960B2 (en) Edge key value store for a distributed platform
CN113138943A (zh) 一种处理请求的方法和装置
CN113407639B (zh) 数据处理方法、装置、系统及存储介质
KR102460910B1 (ko) 데이터 중복 방지를 위한 데이터 저장 방법 및 이를 적용한 데이터 플랫폼
US8433699B1 (en) Object identity and addressability

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
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20201021

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Applicant after: Innovative advanced technology Co.,Ltd.

Address before: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Applicant before: Advanced innovation technology Co.,Ltd.

Effective date of registration: 20201021

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Applicant after: Advanced innovation technology Co.,Ltd.

Address before: A four-storey 847 mailbox in Grand Cayman Capital Building, British Cayman Islands

Applicant before: Alibaba Group Holding Ltd.

GR01 Patent grant
GR01 Patent grant