CN108874806A - 数据查询方法、装置及数据存储系统 - Google Patents

数据查询方法、装置及数据存储系统 Download PDF

Info

Publication number
CN108874806A
CN108874806A CN201710322685.5A CN201710322685A CN108874806A CN 108874806 A CN108874806 A CN 108874806A CN 201710322685 A CN201710322685 A CN 201710322685A CN 108874806 A CN108874806 A CN 108874806A
Authority
CN
China
Prior art keywords
database
data
target data
inquiry request
user
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.)
Pending
Application number
CN201710322685.5A
Other languages
English (en)
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.)
Alibaba China Co Ltd
Original Assignee
Guangdong Shenma Search Technology 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 Guangdong Shenma Search Technology Co Ltd filed Critical Guangdong Shenma Search Technology Co Ltd
Priority to CN201710322685.5A priority Critical patent/CN108874806A/zh
Publication of CN108874806A publication Critical patent/CN108874806A/zh
Pending legal-status Critical Current

Links

Landscapes

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

Abstract

本发明提供一种数据查询方法、装置及数据存储系统,所述数据存储系统包括第一数据库及第二数据库,所述第一数据库用于进行数据缓存,所述第二数据库用于数据的长效存储;所述方法包括:在接收到至少一个用户对目标数据的查询请求时,判断所述第一数据库中是否缓存有该目标数据;若所述第一数据库中未缓存有该目标数据,响应其中一个用户的查询请求,从第二数据库中进行查询,将查询到的目标数据导入所述第一数据库并返回给该用户;响应其他用户的查询请求,从第一数据库查询目标数据并将查询到的目标数据返回给其他用户。如此,减少了多个并发查询请求向第二数据库请求数据时导致第二数据库负荷过大的风险。

Description

数据查询方法、装置及数据存储系统
技术领域
本发明涉及数据查询及存储技术领域,具体而言,涉及一种数据查询方法、装置及数据存储系统。
背景技术
目前,常用的数据存储系统中一般设置两级数据库,包括用于查询数据时进行数据缓存的缓存数据库,及用于进行数据的长效存储的永久性数据库。当用户请求查询数据时,首先在缓存数据库中进行数据查询,当在缓存数据库中查询到所需的数据时,就直接返回查询结果。如果没有在缓存中查询到所需的数据,再向永久性数据库进行数据查询然后再将查询到的数据灌入到缓存数据库中,再从缓存数据库返回数据给用户。在查询请求的并发数量比较大时,如果缓存数据库失效,所有查询请求就都向永久性数据库请求查询数据,这就导致了永久性数据库性能下降,从而影响业务,严重的将直接造成数据存储系统崩溃宕机的后果。
发明内容
为了克服上述不足,本发明的目的在于提供一种数据查询方法,应用于数据存储系统,所述数据存储系统包括第一数据库及第二数据库,所述第一数据库用于进行数据缓存,所述第二数据库用于数据的长效存储;所述方法包括:
在接收到至少一个用户对目标数据的查询请求时,判断所述第一数据库中是否缓存有该目标数据;
若所述第一数据库中未缓存有该目标数据,响应其中一个用户的查询请求,从第二数据库中进行查询,将查询到的目标数据导入所述第一数据库并返回给该用户;
响应其他用户的查询请求,从第一数据库查询目标数据并将查询到的目标数据返回给其他用户。
本发明的另一目的在于提供一种数据查询装置,应用于数据存储系统,所述数据存储系统包括第一数据库及第二数据库,所述第一数据库用于进行数据缓存,所述第二数据库用于数据的长效存储;所述装置包括:
请求接收模块,用于在接收到至少一个用户对目标数据的查询请求时,判断所述第一数据库中是否缓存有该目标数据;
第一响应模块,用于在所述第一数据库中未缓存有该目标数据时,响应其中一个用户的查询请求,从第二数据库中进行查询,将查询到的目标数据导入所述第一数据库并返回给该用户;
第二响应模块,用于响应其他用户的查询请求,从第一数据库查询目标数据并将查询到的目标数据返回给其他用户。
本发明的另一目的在于提供一种数据存储系统,所述数据存储系统包括数据查询装置、第一数据库及第二数据库,所述第一数据库用于进行数据缓存,所述第二数据库用于数据的长效存储;所述装置包括:
请求接收模块,用于在接收到至少一个用户对目标数据的查询请求时,判断所述第一数据库中是否缓存有该目标数据;
第一响应模块,用于在所述第一数据库中未缓存有该目标数据时,响应其中一个用户的查询请求,从第二数据库中进行查询,将查询到的目标数据导入所述第一数据库并返回给该用户;
第二响应模块,用于响应其他用户的查询请求,从第一数据库查询目标数据并将查询到的目标数据返回给其他用户。
相对于现有技术而言,本发明具有以下有益效果:
本发明提供的数据查询方法、装置及数据存储系统,通过在接收到多个对没有缓存在第一数据库中的目标数据的查询请求时,响应其中一个用户向第二数据库请求查询目标数据,并暂停响应其他用户的查询请求。在从所述第二数据库查询到目标数据缓存至第一数据库后,再响应其他用户查询请求将第一数据库中缓存的目标数据发送给其他用户。如此,减少了多个并发查询请求向第二数据库请求数据时导致第二数据库负荷过大的风险。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本发明实施例提供的数据存储系统的示意图之一;
图2为本发明实施例提供的数据查询方法的步骤流程示意图;
图3为本发明图2中步骤S120的子步骤流程示意图;
图4为本发明图2中步骤S130的子步骤流程示意图;
图5为本发明实施例提供的数据存储系统的示意图之二;
图6为本发明实施例提供的数据查询装置的示意图。
图标:10-数据存储系统;100-第一数据库;200-第二数据库;300-数据查询装置;311-请求接收模块;312-第一响应模块;313-第二响应模块;314-第三响应模块。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
在本发明的描述中,需要说明的是,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
请参照图1,图1为本实施例提供的一种数据存储系统10的示意图,所述数据存储系统10包括第一数据库100及第二数据库200。其中,所述第一数据库100用于进行数据缓存,可以进行较少量数据的高速读写。所述第二数据库200用于数据的长效存储,可以对长时间地存储较大的数据量。
在从所述数据存储系统10读取数据的过程中,从所述第二数据库200中将读写量较大的热数据缓存至所述第一数据库100中,以方便用户的快速读写。用户向所述数据存储系统10请求目标查询数据时,先检查所述第一数据库100是否缓存有目标数据,在所述第一数据库100中没有缓存有目标数据时,再向所述第二数据库200请求查询数据,将查到的数据缓存至所述第一数据库100中,然后返回给用户。
在本实施例中,所述数据存储系统10可以为分布式系统,其中,所述第一数据库100及第二数据库200可以设置于所述分布式系统中独立运行的电子设备中。所述数据存储系统10也可以是一个独立的计算机系统或设备,所述第一数据库100及所述第二数据库200可以为该计算机系统或设备中相对独立运行的部分。
在本实施例中,所述第一数据库100可以为REDIS数据库,所述第二数据库200可以为MYSQL数据库。
请参照图2,图2为应用于图1所述数据存储系统10的一种数据查询方法,下面对该方法的各个步骤进行详细阐述。
步骤S110,在接收到至少一个用户对目标数据的查询请求时,判断所述第一数据库100中是否缓存有该目标数据。若所述第一数据库100中未缓存有该目标数据时,进入步骤S120;若所述第一数据库100中缓存有该目标数据时,进入步骤S140。
进一步地,在本实施例中,所述数据存储系统10可以包括至少两个第一数据库100。所述数据存储系统10在接收所述查询请求后,根据所述查询请求,通过一致性哈希算法计算寻找其中一个对应的第一数据库100,判断该第一数据库100中是否缓存有该目标数据。
步骤S120,响应其中一个用户的查询请求,从第二数据库200中进行查询,将查询到的目标数据导入所述第一数据库100并返回给该用户。
具体地,请参照图3,在本实施例中,步骤S120可以包括子步骤S121、子步骤S122、子步骤S123、子步骤S124及子步骤S125,下面对上述子步骤进行详细阐述。
步骤S121,在接收到用户的查询请求时,检测所述数据存储系统10中预设的互斥锁标识的状态。
在本实施例中,当所述数据存储系统10接收到多个并发的查询请求时,需要将一互斥锁标识设置为有效,其中,当所述互斥锁标识被设置为有效时,所述数据存储系统10响应其中一个用户的查询请求,向所述第二数据库200请求查询数据,并暂停响应用户的查询请求。
步骤S122,当检测到所述互斥锁标识被设置为无效时,响应该用户的查询请求,向所述第二数据库200请求查询所述目标数据,并将所述互斥锁标识设置为有效。
所述数据存储系统10响应其中一个用户的查询请求的同时,将所述互斥锁标识设置为有效,以使在接收到其他用户的查询请求时,暂停响应其他用户的查询请求,以避免多个其他用户在未从所述第一数据库100中查询到目标数据时,并发地向所述第二数据库200请求查询目标数据,造成所述第二数据库200负荷过大。
进一步地,在本实施例中,所述数据存储系统10中包括一数据库节点对应表及哈希对应表,所述数据库节点对应表中包括查询请求与所述第二数据库节点的对应关系,所述哈希对应表中包括查询请求与数据的库名及表名的对应关系。所述数据存储系统10向所述第二数据库200请求查询目标数据时,根据所述查询请求在所述数据库节点对应表中查找相应的第二数据库节点作为目标第二数据库节点。然后根据所述查询请求在所述哈希对应表查找所述目标第二数据库节点对应的库名及表头,从查找到的库名及表头中获取目标数据。
基于上述设计,本实施例提供的数据查询方法可以支持REDIS MYSQL路由,例如MYSQL分库分表,HASH REDIS节点等。
步骤S123,判断是否在所述第二数据库200中查询到所述目标数据。若在所述第二数据库200中查询到目标数据,进入步骤S124;若在所述第二数据库200中未查询到目标数据,进入步骤S125。
步骤S124,将所述目标数据缓存至所述第一数据库100,将缓存的所述目标数据发送给该用户,并将所述互斥锁标识设置为无效。
数据存储系统10将从第二数据库200中查询到的目标数据缓存至所述第一数据库100后,将所述互斥锁标识设置为无效,以使其他用户请求查询所述目标数据时可以从所述第一数据库100中将缓存的目标数据发送给其他用户。
步骤S124,返回预设数据给用户,并将所述互斥锁标识设置为无效。其中,所述预设数据可以为空数据(如,null)。
若从第二数据库200中未查询所述目标数据,表示该目标数据未存储于所述数据存储系统10中,则将所述互斥锁标识设置为无效,以使所述目标数据存入所述数据存储系统10后,所述数据存储系统10可以响应用户的查询请求。
步骤S130,响应其他用户的查询请求,从第一数据库100查询目标数据并将查询到的目标数据返回给其他用户。
在本实施例中,所述数据存储系统10在检测到所述互斥锁标识有效时,等待一预设时长后响应该其他用户的查询请求。
具体地,请参照图4,在本实施例中,步骤S130可以包括步骤子步骤S131、子步骤S132、子步骤S133、子步骤S134、及子步骤S136。下面对上述子步骤进行详细阐述。
子步骤S131,在检测到所述互斥锁标识有效时,等待一预设时长后检测所述第一数据库100中是否缓存有所述目标数据。若所述第一数据库100中缓存有所述目标数据,进入子步骤S132;若所述第一数据库100中未缓存有所述目标数据,进入子步骤S133。
子步骤S132,将该目标数据返回给该其他用户。
若此时所述第一数据库100中已缓存有所述目标数据,则表示所述数据存储系统10在上述步骤S123中从所述第二数据库200中查询到了目标数据,并将所述目标数据缓存至了所述第一数据库100,所述数据存储系统10直接将所述第一数据库100中缓存的目标数据发送给该其他用户。
子步骤S133,向所述第二数据库200请求查询所述目标数据。
子步骤S134,判断是否在所述第二数据库200中查询到所述目标数据。若在所述第二数据库200中查询到目标数据,进入子步骤S135;若在所述第二数据库200中未查询到目标数据,进入子步骤S136。
若此时所述第一数据库100中未缓存有所述目标数据,则表示所述存储系统在上述步骤S124中未从所述第二数据库200中查询到目标数据,所述数据存储系统10再次向所述第二数据库200请求查询目标数据。
子步骤S135,将所述目标数据缓存至所述第一数据库100,将缓存的所述目标数据发送给所述其他用户,并将所述互斥锁标识设置为无效。
所述数据存储系统10将从第二数据库200中查询到的目标数据缓存至所述第一数据库100后,将所述互斥锁标识设置为无效,以使其他用户请求查询所述目标数据时可以从所述第一数据库100中将缓存的目标数据发送给其他用户。
子步骤S136,返回预设数据给所述其他用户,并将所述互斥锁标识设置为无效。其中,所述预设数据可以为空数据(如,null)。
若从第二数据库200中未查询所述目标数据,表示该目标数据库未存储于所述数据存储系统10中,则将所述互斥锁标识设置为无效,以使所述目标数据存入所述数据存储系统10后,所述数据存储系统10可以响应用户的查询请求。
基于上述设计,在接收到多个对目标数据的查询请求时,所述数据存储系统10响应其中一个用户的查询请求,并暂停响应其他用户的查询请求,其中一个用户在所述第二数据库200中查询目标数据,若查询到了目标数据,将目标数据缓存至所述第一数据库100,使其他用户在等待第一预设时长后可以从所述第一数据库100直接查询获得所述目标数据。如此,防止多个并发请求同时向所述第二数据库200查询目标数据时导致的第二数据库200负荷过大,即防止了冷数据变为热数据的内存渗透。
S140,查询该目标数据的过期时间,当所述过期时间小于一个预设时长时,重置该目标数据的过期时间,并将所述目标数据返回给用户。
基于上述设计,可以查询量较大的热数据持续缓存在所述第一数据库100中,可以减少从第二数据库200查询热数据的次数,即防止了热数据变为冷数据的内存渗透。
请参照图5,所述数据存储系统10还可以包括数据查询装置300,请参照图6,所述数据查询装置300包括请求接收模块311、第一响应模块312及第二响应模块313。
所述请求接收模块311,用于在接收到至少一个用户对目标数据的查询请求时,判断所述第一数据库100中是否缓存有该目标数据。
本实施例中,所述请求接收模块311可用于执行图2所示的步骤S110,关于所述请求接收模块311的具体描述可参对所述步骤S110的描述。
进一步地,在本实施例中,所述数据存储系统10包括至少两个第一数据库100,所述请求接收模块311判断所述第一数据库100中是否缓存有该目标数据的方式包括:
根据所述查询请求,通过一致性哈希算法计算寻找其中一个对应的第一数据库100,判断该第一数据库100中是否缓存有该目标数据。
所述第一响应模块312,用于在所述第一数据库100中未缓存有该目标数据时,响应其中一个用户的查询请求,从第二数据库200中进行查询,将查询到的目标数据导入所述第一数据库100并返回给该用户。
本实施例中,所述第一响应模块312可用于执行图2所示的步骤S120,关于所述第一响应模块312的具体描述可参对所述步骤S120的描述。
进一步地,在本实施例中,所述第一响应模块312响应其中一个用户的查询请求的方式,包括:
在接收到用户的查询请求时,检测所述数据存储系统10中预设的互斥锁标识的状态,其中,当所述互斥锁标识被设置为有效时,所述数据存储系统10暂停响应用户的查询请求。
当检测到所述互斥锁标识被设置为无效时,响应该用户的查询请求,向所述第二数据库200请求查询所述目标数据,并将所述互斥锁标识设置为有效。
若在所述第二数据库200中查询到目标数据,将所述目标数据缓存至所述第一数据库100,将缓存的所述目标数据发送给该用户,并将所述互斥锁标识设置为无效。
若在所述第二数据库200中未查询到目标数据,返回预设数据给该用户,并将所述互斥锁标识设置为无效。
所述第二响应模块313,用于响应其他用户的查询请求,从第一数据库100查询目标数据并将查询到的目标数据返回给其他用户。
本实施例中,所述第二响应模块313可用于执行图2所示的步骤S130,关于所述第二响应模块313的具体描述可参对所述步骤S130的描述。
进一步地,在本实施例中,所述第二响应模块313响应其他用户的查询请求的方式,包括:
在检测到所述互斥锁标识有效时,等待一预设时长后响应该其他用户的查询请求。
所述第二响应模块313等待一预设时长后检测所述第一数据库100中是否缓存有所述目标数据。
当所述第一数据库100中缓存有所述目标数据时,将该目标数据返回给该其他用户。
当所述第一数据库100中未缓存有所述目标数据时,向所述第二数据库200请求查询所述目标数据。
若在所述第二数据库200中查询到目标数据,将所述目标数据缓存至所述第一数据库100,将缓存的所述目标数据发送给所述其他用户,并将所述互斥锁标识设置为无效。
若在所述第二数据库200中未查询到目标数据,返回预设数据给所述其他用户,并将所述互斥锁标识设置为无效。
进一步地,在本实施例中,所述数据存储系统10中包括一数据库节点对应表及哈希对应表,所述数据库节点对应表中包括查询请求与所述第二数据库节点的对应关系,所述哈希对应表中包括查询请求与数据的库名及表名的对应关系;所述第一响应模块312或第二响应模块313向所述第二数据库200请求查询目标数据的方式,包括:
根据所述查询请求在所述数据库节点对应中查找相应的第二数据库节点作为目标第二数据库节点;
根据所述查询请求在所述哈希对应表查找所述第二数据库节点中对应的库名及表头,从查找到的库名及表头中获取目标数据。
进一步地,请再次参照图5,所述装置还包括第三响应模块314。
所述第三响应模块314,用于在所述第一数据库100中缓存有所述目标数据时,查询该目标数据的过期时间;当所述过期时间小于一个预设时长时,重置该目标数据的过期时间,并将所述目标数据返回给用户。
综上所述,本发明提供的数据查询方法、装置及数据存储系统10,通过在接收到多个对没有缓存在第一数据库100中的目标数据的查询请求时,响应其中一个用户向第二数据库200请求查询目标数据,并暂停响应其他用户的查询请求。在从所述第二数据库200查询到目标数据缓存至第一数据库100后,再响应其他用户查询请求将第一数据库100中缓存的目标数据发送给其他用户。如此,减少了多个并发查询请求向第二数据库200请求数据时导致第二数据库200负荷过大的风险。
在本申请所提供的实施例中,应该理解到,所揭露的装置和方法,也可以通过其他的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本发明各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

Claims (24)

1.一种数据查询方法,应用于数据存储系统,其特征在于,所述数据存储系统包括第一数据库及第二数据库,所述第一数据库用于进行数据缓存,所述第二数据库用于数据的长效存储;所述方法包括:
在接收到至少一个用户对目标数据的查询请求时,判断所述第一数据库中是否缓存有该目标数据;
若所述第一数据库中未缓存有该目标数据,响应其中一个用户的查询请求,从第二数据库中进行查询,将查询到的目标数据导入所述第一数据库并返回给该用户;
响应其他用户的查询请求,从第一数据库查询目标数据并将查询到的目标数据返回给其他用户。
2.根据权利要求1所述的方法,其特征在于,所述响应其中一个用户的查询请求,从第二数据库中进行查询,将查询到的目标数据导入所述第一数据库并返回给该用户的步骤,包括:
在接收到用户的查询请求时,检测所述数据存储系统中预设的互斥锁标识的状态,其中,当所述互斥锁标识被设置为有效时,所述数据存储系统暂停响应用户的查询请求;
当检测到所述互斥锁标识被设置为无效时,响应该用户的查询请求,向所述第二数据库请求查询所述目标数据,并将所述互斥锁标识设置为有效;
若在所述第二数据库中查询到目标数据,将所述目标数据缓存至所述第一数据库,将缓存的所述目标数据发送给该用户,并将所述互斥锁标识设置为无效;
若在所述第二数据库中未查询到目标数据,返回预设数据给该用户,并将所述互斥锁标识设置为无效。
3.根据权利要求2所述的方法,其特征在于,所述响应其他用户的查询请求的步骤,包括:
在检测到所述互斥锁标识有效时,等待一预设时长后响应该其他用户的查询请求。
4.根据权利要求3所述的方法,其特征在于,所述等待一预设时长后响应该其他用户的查询请求的步骤,包括:
等待一预设时长后检测所述第一数据库中是否缓存有所述目标数据;
当所述第一数据库中缓存有所述目标数据时,将该目标数据返回给该其他用户。
5.根据权利要求3所述的方法,其特征在于,所述等待一预设时长后响应该其他用户的查询请求的步骤,还包括:
当所述第一数据库中未缓存有所述目标数据时,向所述第二数据库请求查询所述目标数据;
若在所述第二数据库中查询到目标数据,将所述目标数据缓存至所述第一数据库,将缓存的所述目标数据发送给所述其他用户,并将所述互斥锁标识设置为无效;
若在所述第二数据库中未查询到目标数据,返回预设数据给所述其他用户,并将所述互斥锁标识设置为无效。
6.根据权利要求5所述的方法,其特征在于,所述数据存储系统中包括一数据库节点对应表及哈希对应表,所述数据库节点对应表中包括查询请求与所述第二数据库节点的对应关系,所述哈希对应表中包括查询请求与数据的库名及表名的对应关系;所述根据所述查询请求向所述第二数据库请求查询目标数据的步骤,包括:
根据所述查询请求在所述数据库节点对应中查找相应的第二数据库节点作为目标第二数据库节点;
根据所述查询请求在所述哈希对应表查找所述第二数据库节点中对应的库名及表头,从查找到的库名及表头中获取目标数据。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若所述第一数据库中缓存有所述目标数据,查询该目标数据的过期时间;
当所述过期时间小于一个预设时长时,重置该目标数据的过期时间,并将所述目标数据返回给用户。
8.根据权利要求1所述的方法,其特征在于,所述数据存储系统包括至少两个第一数据库,所述在接收到至少一个用户对目标数据的查询请求时,判断所述第一数据库中是否缓存有该目标数据的步骤,包括:
根据所述查询请求,通过一致性哈希算法计算寻找其中一个对应的第一数据库,判断该第一数据库中是否缓存有该目标数据。
9.一种数据查询装置,应用于数据存储系统,其特征在于,所述数据存储系统包括第一数据库及第二数据库,所述第一数据库用于进行数据缓存,所述第二数据库用于数据的长效存储;所述装置包括:
请求接收模块,用于在接收到至少一个用户对目标数据的查询请求时,判断所述第一数据库中是否缓存有该目标数据;
第一响应模块,用于在所述第一数据库中未缓存有该目标数据时,响应其中一个用户的查询请求,从第二数据库中进行查询,将查询到的目标数据导入所述第一数据库并返回给该用户;
第二响应模块,用于响应其他用户的查询请求,从第一数据库查询目标数据并将查询到的目标数据返回给其他用户。
10.根据权利要求9所述的装置,其特征在于,所述第一响应模块响应其中一个用户的查询请求的方式,包括:
在接收到用户的查询请求时,检测所述数据存储系统中预设的互斥锁标识的状态,其中,当所述互斥锁标识被设置为有效时,所述数据存储系统暂停响应用户的查询请求;
当检测到所述互斥锁标识被设置为无效时,响应该用户的查询请求,向所述第二数据库请求查询所述目标数据,并将所述互斥锁标识设置为有效;
若在所述第二数据库中查询到目标数据,将所述目标数据缓存至所述第一数据库,将缓存的所述目标数据发送给该用户,并将所述互斥锁标识设置为无效;
若在所述第二数据库中未查询到目标数据,返回预设数据给该用户,并将所述互斥锁标识设置为无效。
11.根据权利要求10所述的装置,其特征在于,所述第二响应模块响应其他用户的查询请求的方式,包括:
在检测到所述互斥锁标识有效时,等待一预设时长后响应该其他用户的查询请求。
12.根据权利要求11所述的装置,其特征在于,所述第二响应模块响应其他用户的查询请求的方式,包括:
等待一预设时长后检测所述第一数据库中是否缓存有所述目标数据;
当所述第一数据库中缓存有所述目标数据时,将该目标数据返回给该其他用户。
13.根据权利要求11所述的装置,其特征在于,所述第二响应模块响应其他用户的查询请求的方式,还包括:
当所述第一数据库中未缓存有所述目标数据时,向所述第二数据库请求查询所述目标数据;
若在所述第二数据库中查询到目标数据,将所述目标数据缓存至所述第一数据库,将缓存的所述目标数据发送给所述其他用户,并将所述互斥锁标识设置为无效;
若在所述第二数据库中未查询到目标数据,返回预设数据给所述其他用户,并将所述互斥锁标识设置为无效。
14.根据权利要求13所述的装置,其特征在于,所述数据存储系统中包括一数据库节点对应表及哈希对应表,所述数据库节点对应表中包括查询请求与所述第二数据库节点的对应关系,所述哈希对应表中包括查询请求与数据的库名及表名的对应关系;所述第一响应模块或第二响应模块向所述第二数据库请求查询目标数据的方式,包括:
根据所述查询请求在所述数据库节点对应中查找相应的第二数据库节点作为目标第二数据库节点;
根据所述查询请求在所述哈希对应表查找所述第二数据库节点中对应的库名及表头,从查找到的库名及表头中获取目标数据。
15.根据权利要求9所述的装置,其特征在于,所述装置还包括:
第三响应模块,用于在所述第一数据库中缓存有所述目标数据时,查询该目标数据的过期时间;当所述过期时间小于一个预设时长时,重置该目标数据的过期时间,并将所述目标数据返回给用户。
16.根据权利要求9所述的装置,其特征在于,所述数据存储系统包括至少两个第一数据库,所述请求接收模块判断所述第一数据库中是否缓存有该目标数据的方式,包括:
根据所述查询请求,通过一致性哈希算法计算寻找其中一个对应的第一数据库,判断该第一数据库中是否缓存有该目标数据。
17.一种数据存储系统,其特征在于,所述数据存储系统包括数据查询装置、第一数据库及第二数据库,所述第一数据库用于进行数据缓存,所述第二数据库用于数据的长效存储;所述装置包括:
请求接收模块,用于在接收到至少一个用户对目标数据的查询请求时,判断所述第一数据库中是否缓存有该目标数据;
第一响应模块,用于在所述第一数据库中未缓存有该目标数据时,响应其中一个用户的查询请求,从第二数据库中进行查询,将查询到的目标数据导入所述第一数据库并返回给该用户;
第二响应模块,用于响应其他用户的查询请求,从第一数据库查询目标数据并将查询到的目标数据返回给其他用户。
18.根据权利要求17所述的数据存储系统,其特征在于,所述第一响应模块响应其中一个用户的查询请求的方式,包括:
在接收到用户的查询请求时,检测所述数据存储系统中预设的互斥锁标识的状态,其中,当所述互斥锁标识被设置为有效时,所述数据存储系统暂停响应用户的查询请求;
当检测到所述互斥锁标识被设置为无效时,响应该用户的查询请求,向所述第二数据库请求查询所述目标数据,并将所述互斥锁标识设置为有效;
若在所述第二数据库中查询到目标数据,将所述目标数据缓存至所述第一数据库,将缓存的所述目标数据发送给该用户,并将所述互斥锁标识设置为无效;
若在所述第二数据库中未查询到目标数据,返回预设数据给该用户,并将所述互斥锁标识设置为无效。
19.根据权利要求18所述的数据存储系统,其特征在于,所述第二响应模块响应其他用户的查询请求的方式,包括:
在检测到所述互斥锁标识有效时,等待一预设时长后响应该其他用户的查询请求。
20.根据权利要求19所述的数据存储系统,其特征在于,所述第二响应模块响应其他用户的查询请求的方式,包括:
等待一预设时长后检测所述第一数据库中是否缓存有所述目标数据;
当所述第一数据库中缓存有所述目标数据时,将该目标数据返回给该其他用户。
21.根据权利要求19所述的数据存储系统,其特征在于,所述第二响应模块响应其他用户的查询请求的方式,还包括:
当所述第一数据库中未缓存有所述目标数据时,向所述第二数据库请求查询所述目标数据;
若在所述第二数据库中查询到目标数据,将所述目标数据缓存至所述第一数据库,将缓存的所述目标数据发送给所述其他用户,并将所述互斥锁标识设置为无效;
若在所述第二数据库中未查询到目标数据,返回预设数据给所述其他用户,并将所述互斥锁标识设置为无效。
22.根据权利要求21所述的数据存储系统,其特征在于,所述数据存储系统包括一数据库节点对应表及哈希对应表,所述数据库节点对应表包括查询请求与所述第二数据库节点的对应关系,所述哈希对应表包括查询请求与数据的库名及表名的对应关系;所述第一响应模块或第二响应模块向所述第二数据库请求查询目标数据的方式,包括:
根据所述查询请求在所述数据库节点对应中查找相应的第二数据库节点作为目标第二数据库节点;
根据所述查询请求在所述哈希对应表查找所述第二数据库节点中对应的库名及表头,从查找到的库名及表头中获取目标数据。
23.根据权利要求17所述的数据存储系统,其特征在于,所述装置还包括:
第三响应模块,用于在所述第一数据库中缓存有所述目标数据时,查询该目标数据的过期时间;当所述过期时间小于一个预设时长时,重置该目标数据的过期时间,并将所述目标数据返回给用户。
24.根据权利要求17所述的数据存储系统,其特征在于,该数据存储系统包括至少两个第一数据库,所述请求接收模块判断所述第一数据库中是否缓存有该目标数据的方式,包括:
根据所述查询请求,通过一致性哈希算法计算寻找其中一个对应的第一数据库,判断该第一数据库中是否缓存有该目标数据。
CN201710322685.5A 2017-05-09 2017-05-09 数据查询方法、装置及数据存储系统 Pending CN108874806A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710322685.5A CN108874806A (zh) 2017-05-09 2017-05-09 数据查询方法、装置及数据存储系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710322685.5A CN108874806A (zh) 2017-05-09 2017-05-09 数据查询方法、装置及数据存储系统

Publications (1)

Publication Number Publication Date
CN108874806A true CN108874806A (zh) 2018-11-23

Family

ID=64287917

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710322685.5A Pending CN108874806A (zh) 2017-05-09 2017-05-09 数据查询方法、装置及数据存储系统

Country Status (1)

Country Link
CN (1) CN108874806A (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110119338A (zh) * 2019-04-30 2019-08-13 广州微算互联信息技术有限公司 一种游戏监控参数的获取方法、系统和存储介质
CN110837521A (zh) * 2019-11-15 2020-02-25 北京金山云网络技术有限公司 数据查询方法、装置和服务器
CN111104429A (zh) * 2019-12-19 2020-05-05 中思博安科技(北京)有限公司 一种数据访问方法及装置
CN111177157A (zh) * 2020-01-02 2020-05-19 中国银行股份有限公司 账户黑名单检测方法及系统
CN111522836A (zh) * 2020-04-22 2020-08-11 杭州海康威视系统技术有限公司 一种数据查询方法、装置、电子设备及存储介质
CN112685389A (zh) * 2021-03-19 2021-04-20 北京瑞莱智慧科技有限公司 数据管理方法、数据管理装置、电子设备及存储介质
WO2021164487A1 (zh) * 2020-02-20 2021-08-26 京东数字科技控股股份有限公司 一种数据的查询方法和装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103246659A (zh) * 2012-02-06 2013-08-14 阿里巴巴集团控股有限公司 键值数据查询的方法和装置
US20140089588A1 (en) * 2012-09-27 2014-03-27 Amadeus S.A.S. Method and system of storing and retrieving data
CN104035923A (zh) * 2013-03-04 2014-09-10 阿里巴巴集团控股有限公司 查询数据的方法及装置
CN105608115A (zh) * 2015-12-11 2016-05-25 北京奇虎科技有限公司 数据获取方法与装置
CN105843951A (zh) * 2016-04-12 2016-08-10 北京小米移动软件有限公司 数据查询方法和装置
CN106557562A (zh) * 2016-11-14 2017-04-05 天津南大通用数据技术股份有限公司 一种单机数据库数据的查询方法及装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103246659A (zh) * 2012-02-06 2013-08-14 阿里巴巴集团控股有限公司 键值数据查询的方法和装置
US20140089588A1 (en) * 2012-09-27 2014-03-27 Amadeus S.A.S. Method and system of storing and retrieving data
CN104035923A (zh) * 2013-03-04 2014-09-10 阿里巴巴集团控股有限公司 查询数据的方法及装置
CN105608115A (zh) * 2015-12-11 2016-05-25 北京奇虎科技有限公司 数据获取方法与装置
CN105843951A (zh) * 2016-04-12 2016-08-10 北京小米移动软件有限公司 数据查询方法和装置
CN106557562A (zh) * 2016-11-14 2017-04-05 天津南大通用数据技术股份有限公司 一种单机数据库数据的查询方法及装置

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110119338A (zh) * 2019-04-30 2019-08-13 广州微算互联信息技术有限公司 一种游戏监控参数的获取方法、系统和存储介质
CN110837521A (zh) * 2019-11-15 2020-02-25 北京金山云网络技术有限公司 数据查询方法、装置和服务器
CN111104429A (zh) * 2019-12-19 2020-05-05 中思博安科技(北京)有限公司 一种数据访问方法及装置
CN111177157A (zh) * 2020-01-02 2020-05-19 中国银行股份有限公司 账户黑名单检测方法及系统
CN111177157B (zh) * 2020-01-02 2023-12-19 中国银行股份有限公司 账户黑名单检测方法及系统
WO2021164487A1 (zh) * 2020-02-20 2021-08-26 京东数字科技控股股份有限公司 一种数据的查询方法和装置
CN111522836A (zh) * 2020-04-22 2020-08-11 杭州海康威视系统技术有限公司 一种数据查询方法、装置、电子设备及存储介质
CN111522836B (zh) * 2020-04-22 2023-10-10 杭州海康威视系统技术有限公司 一种数据查询方法、装置、电子设备及存储介质
CN112685389A (zh) * 2021-03-19 2021-04-20 北京瑞莱智慧科技有限公司 数据管理方法、数据管理装置、电子设备及存储介质
CN112685389B (zh) * 2021-03-19 2021-06-29 北京瑞莱智慧科技有限公司 数据管理方法、数据管理装置、电子设备及存储介质

Similar Documents

Publication Publication Date Title
CN108874806A (zh) 数据查询方法、装置及数据存储系统
US11520770B2 (en) System and method for providing high availability data
CN105630823B (zh) 基于分布式系统的缓存数据的监控方法、装置和系统
CN105630819B (zh) 一种缓存数据的刷新方法和装置
CN110019540B (zh) 企业图谱的实现方法、展示方法及装置、设备
CN106202581B (zh) 一种数据搜索方法及装置
CN107644071A (zh) 缓存更新方法、装置及数据存储系统
CN106202112A (zh) 缓存目录刷新方法和装置
US8751610B2 (en) Method and system for caching real-time data
JP2004532478A5 (zh)
CN106888280A (zh) Dns更新方法、装置及系统
CN106294772A (zh) 分布式内存列式数据库的缓存管理方法
US20130346439A1 (en) Pushing Business Objects
CN105100050A (zh) 用户权限管理方法及系统
CN106506704A (zh) 一种缓存更新方法及装置
CN106161519B (zh) 一种信息获取方法和装置
CN108717457A (zh) 一种电子商务平台大数据处理方法和系统
CN108111325A (zh) 一种资源分配方法及装置
CN109669980A (zh) 数据跨库访问方法及装置
CN103559307A (zh) 一种查询的缓存方法及装置
CN113377817A (zh) 数据处理方法、系统、设备及存储介质
CN106547751A (zh) 缓存数据的更新方法及装置
CN109739854A (zh) 一种数据存储方法及装置
US20060230020A1 (en) Improving Efficiency in processing queries directed to static data sets
CN106897303A (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
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20200609

Address after: 310052 room 508, floor 5, building 4, No. 699, Wangshang Road, Changhe street, Binjiang District, Hangzhou City, Zhejiang Province

Applicant after: Alibaba (China) Co.,Ltd.

Address before: 510000 Guangdong city of Guangzhou province Whampoa Tianhe District Road No. 163 Xiping Yun Lu Yun Ping square B radio tower 13 layer self unit 01 (only for office use)

Applicant before: GUANGZHOU SHENMA MOBILE INFORMATION TECHNOLOGY Co.,Ltd.

RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20181123