CN112732751B - 一种医学数据处理方法、装置、存储介质及设备 - Google Patents
一种医学数据处理方法、装置、存储介质及设备 Download PDFInfo
- Publication number
- CN112732751B CN112732751B CN202011606796.7A CN202011606796A CN112732751B CN 112732751 B CN112732751 B CN 112732751B CN 202011606796 A CN202011606796 A CN 202011606796A CN 112732751 B CN112732751 B CN 112732751B
- Authority
- CN
- China
- Prior art keywords
- query
- cache
- data
- identifier
- designated
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
- G06F16/24534—Query rewriting; Transformation
- G06F16/24539—Query rewriting; Transformation using cached or materialised query results
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
本发明公开了一种数据查询方法、装置、计算机可读存储介质及设备,所述方法包括:获得查询请求,所述查询请求包含至少一个查询对象;对所述查询请求进行分析,获得与每一个查询对象对应的查询标识;当根据所述查询标识确定为存在有与所述查询标识对应的指定缓存库,根据所述查询标识在所述指定缓存库中进行数据查询,获得与查询标识对应的缓存数据对;其中,所述指定缓存数据库为多个预设缓存数据库的其中至少之一;将所述与查询标识对应的缓存数据对确定为第一查询数据,根据所述第一查询数据输出与所述查询请求对应的第一查询结果,应用本方法,能够提高缓存数据的一致性和缓存的命中率,缩短应答时间。
Description
技术领域
本发明涉及数据处理技术领域,尤其涉及一种数据查询方法、装置、计算机可读存储介质及设备。
背景技术
传统的数据库管理系统把所有数据都放在磁盘上进行管理,所以称为磁盘数据库。磁盘数据库需要频繁地访问磁盘来进行数据的操作,当数据量很大,操作频繁且复杂时,就会暴露出很多问题。
近年来,内存容量不断提高,操作系统已经可以支持更大的地址空间,同时对数据库系统实时响应能力要求日益提高,充分利用内存技术提升数据库性能成为一个热点。随着互联网To C用户的增加,各业务模块引入了缓存业务逻辑,将部分用户请求通过缓存数据库进行应答以保证系统的性能。但是现阶段,对于多条查询需求,缓存数据库在进行查询时需要进行批量for循环,导致应答时间增加。
发明内容
本发明实施例创造性地提供一种数据查询方法、装置、计算机可读存储介质及设备,具有缩短应答时间的效果。
根据本发明实施例第一方面,提供了一种数据查询方法,所述方法包括:获得查询请求,所述查询请求包含至少一个查询对象;对所述查询请求进行分析,获得与每一个查询对象对应的查询标识;当根据所述查询标识确定为存在有与所述查询标识对应的指定缓存库,根据所述查询标识在所述指定缓存库中进行数据查询,获得与查询标识对应的缓存数据对;其中,所述指定缓存数据库为多个预设缓存数据库的其中至少之一;将所述与查询标识对应的缓存数据对确定为第一查询数据,根据所述第一查询数据输出与所述查询请求对应的第一查询结果。
在一可实施方式中,所述方法还包括:当根据所述查询标识确定为不存在与所述查询标识对应的指定缓存库,根据所述查询标识在关系数据库进行数据查询,获得与查询标识对应的关系数据对;将所述与查询标识对应的关系数据对确定为第二查询数据,根据所述第二查询数据输出与所述查询请求对应的第二查询结果。
在一可实施方式中,在获得与查询标识对应的关系数据对之后,所述方法还包括:基于所述查询标识和所述与查询标识对应的关系数据对生成缓存数据对;将所述缓存数据对存储于与所述查询标识对应的指定缓存库中。
在一可实施方式中,所述方法还包括:当查询请求包含多个查询对象,根据与所述指定缓存库对应的查询标识确定所述第一查询数据;根据与所述关系数据库对应的查询标识确定所述第二查询数据;根据所述第一查询数据和所述第二查询数据输出与所述查询请求对应的第三查询结果。
在一可实施方式中,所述根据与所述指定缓存库对应的查询标识确定所述第一查询数据,包括:确定与同一个指定缓存库对应的多个查询标识,访问多个查询标识至所述同一个指定缓存库;根据多个查询标识在所述同一个指定缓存库中就行批量查找,获得多个缓存数据对;接收来自所述同一个指定缓存库的所述多个缓存数据对,根据所述多个缓存数据对确定所述第一查询数据。
在一可实施方式中,所述方法还包括:对位于所述缓存数据库中的缓存数据对配置缓存失效时间阈值;当与所述缓存数据对对应的数据存在时间满足缓存失效时间阈值,在所述缓存数据库中删除所述缓存数据对。
在一可实施方式中,所述方法还包括:对位于所述缓存数据库中的缓存数据对配置自动刷新时间阈值;当与所述缓存数据对对应的刷新间隔时间满足自动刷新时间阈值,根据所述关系数据库对所述缓存数据对进行数据刷新。
根据本发明实施例第二方面,还提供了一种数据查询装置,所述装置包括:获得模块,用于获得查询请求,所述查询请求包含至少一个查询对象;分析模块,用于对所述查询请求进行分析,获得与每一个查询对象对应的查询标识;查询模块,用于当根据所述查询标识确定为存在有与所述查询标识对应的指定缓存库,根据所述查询标识在所述指定缓存库中进行数据查询,获得与查询标识对应的缓存数据对;其中,所述指定缓存数据库为多个预设缓存数据库的其中至少之一;输出模块,用于将所述与查询标识对应的缓存数据对确定为第一查询数据,根据所述第一查询数据输出与所述查询请求对应的第一查询结果。
在一可实施方式中,所述查询模块,还用于当根据所述查询标识确定为不存在与所述查询标识对应的指定缓存库,根据所述查询标识在关系数据库进行数据查询,获得与查询标识对应的关系数据对;所述输出模块,还用于将所述与查询标识对应的关系数据对确定为第二查询数据,根据所述第二查询数据输出与所述查询请求对应的第二查询结果。
在一可实施方式中,所述装置还包括:生成模块,用于基于所述查询标识和所述与查询标识对应的关系数据对生成缓存数据对;存储模块,用于将所述缓存数据对存储于与所述查询标识对应的指定缓存库中。
在一可实施方式中,所述查询模块,还用于当查询请求包含多个查询对象,根据与所述指定缓存库对应的查询标识确定所述第一查询数据;根据与所述关系数据库对应的查询标识确定所述第二查询数据;所述输出模块,还用于根据所述第一查询数据和所述第二查询数据输出与所述查询请求对应的第三查询结果。
在一可实施方式中,所述查询模块,包括:访问子模块,用于确定与同一个指定缓存库对应的多个查询标识,访问多个查询标识至所述同一个指定缓存库;查找子模块,用于根据多个查询标识在所述同一个指定缓存库中就行批量查找,获得多个缓存数据对;接收子模块,用于接收来自所述同一个指定缓存库的所述多个缓存数据对,根据所述多个缓存数据对确定所述第一查询数据。
在一可实施方式中,所述装置还包括:配置模块,用于对位于所述缓存数据库中的缓存数据对配置缓存失效时间阈值;删除模块,用于当与所述缓存数据对对应的数据存在时间满足缓存失效时间阈值,在所述缓存数据库中删除所述缓存数据对。
在一可实施方式中,所述配置模块,还用于对位于所述缓存数据库中的缓存数据对配置自动刷新时间阈值;所述装置还包括:刷新模块,用于当与所述缓存数据对对应的刷新间隔时间满足自动刷新时间阈值,根据所述关系数据库对所述缓存数据对进行数据刷新。
根据本发明实施例第三方面,还提供了一种设备,所述设备包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现上述第一方面任一所述的方法。
根据本发明实施例第四方面,还提供了一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现上述第一方面任一所述的方法。
本发明实施例提供的数据查询方法,在查询请求包含一个查询对象或查询请求包含多个查询对象的情况下,都能够通过统一形式的查询标识将查询标识对应至统一形式的缓存数据对,以使无论何种查询请求所对应的查询对象均可以对应至缓存数据对,并通过缓存数据对确定与查询请求对应的查询结果。
需要理解的是,本发明的教导并不需要实现上面所述的全部有益效果,而是特定的技术方案可以实现特定的技术效果,并且本发明的其他实施方式还能够实现上面未提到的有益效果。
附图说明
通过参考附图阅读下文的详细描述,本发明示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本发明的若干实施方式,其中:
在附图中,相同或对应的标号表示相同或对应的部分。
图1示出了本发明实施例一种数据查询方法的实现流程示意图;
图2示出了本发明实施例一种数据查询方法关系数据对查询的实现流程示意图;
图3示出了本发明实施例一种数据查询装置的实现模块示意图。
具体实施方式
下面将参考若干示例性实施方式来描述本发明的原理和精神。应当理解,给出这些实施方式仅仅是为使本领域技术人员能够更好地理解进而实现本发明,而并非以任何方式限制本发明的范围。相反,提供这些实施方式是为使本发明更加透彻和完整,并能够将本发明的范围完整地传达给本领域的技术人员。
下面结合附图和具体实施例对本发明的技术方案进一步详细阐述。
图1示出了本发明实施例一种数据查询方法的实现流程示意图。
参见图1,根据本发明实施例第一方面,提供了一种数据查询方法,方法包括:操作101,获得查询请求,查询请求包含至少一个查询对象;操作102,对查询请求进行分析,获得与每一个查询对象对应的查询标识;操作103,当根据查询标识确定为存在有与查询标识对应的指定缓存库,根据查询标识在指定缓存库中进行数据查询,获得与查询标识对应的缓存数据对;其中,指定缓存数据库为多个预设缓存数据库的其中至少之一;操作104,将与查询标识对应的缓存数据对确定为第一查询数据,根据第一查询数据输出与查询请求对应的第一查询结果。
本发明实施例提供的数据查询方法,在无论查询请求包含一个查询对象或查询请求包含多个查询对象的情况下,通过统一形式的查询标识将查询标识对应至统一形式的缓存数据对,具体的,可以将每一条缓存数据对在技术上进行抽象,抽象成为包含key-value的结构体,以使无论何种查询请求所对应的查询对象均可以对应至缓存数据对,实现对查询结果的确定。具有的,以下结合各类查询场景对上述方法进行具体说明。
在一种实施场景中,包括操作101获得查询请求。查询请求可以来与应用本方法的装置通信连接的设备,也可以在用户操作下由应用本方法的装置生成。查询请求用于对一个查询对象进行查询,例如,查询请求可以为“查询姓名为张三的用户资料”或“查询X监控X时段的监控内容”。查询请求也可以用于对多个查询对象进行查询,例如,查询请求可以为“查询姓名为张三的用户资料、查询证件号为ABC的用户资料、查询地址为A街B栋C室的用户资料”。即本方法即不限制一次查询请求中查询对象的数量,也不限制查询对象的所属类型。查询对象可以是事件也可以用户资料,还可以是其他可查询的内容。
在操作102中,对查询请求进行分析,以获得与每一个查询对象对应的查询标识。具体的,为了有助于查询对象能够命中相关的缓存数据对,在缓存数据对为key-value结构体的情况下,获得查询请求后,对每一个查询对象进行分析以确定对应该查询对象的查询标识,即key。通过key的匹配用于确定对应的缓存数据对。
在操作103中,本方法存在多个对应不同查询对象的预设缓存数据库。具体的,由于查询对象的类型不同,不同的查询对象的类型可能对应于不同的缓存数据库中。例如,本方法中,可以有与姓名标识对应的姓名缓存库、与年龄标识对应的年龄缓存库、与时间标识对应的事件缓存库、与地区标识对应的地区缓存库等等内容。首先根据查询标识在多个预设缓存数据库确定与查询标识对应的指定缓存库。例如,当查询请求为“查询X监控X时段的监控内容”,根据查询标识确定与时间标识对应的事件缓存库为指定缓存库,在事件缓存库进行数据查找;当查询请求为“查询姓名为张三的用户资料、查询证件号为ABC的用户资料、查询地址为A街B栋C室的用户资料”,根据该查询请求确定与“姓名为张三的用户资料”对应的第一查询标识、与“证件号为ABC的用户资料”的第二查询标识、与“地址为A街B栋C室的用户资料”对应的第三查询标识,根据第一查询标识确定姓名缓存库为指定缓存库,在姓名缓存库在姓名缓存库进行数据查找;根据第二查询标识确定证件缓存库为指定缓存库,在证件缓存库进行数据查找;根据第三查询标识确定地区缓存库为指定缓存库,在地区缓存库进行数据查找。在指定缓存库中进行数据查询,即可获得与查询标识对应的缓存数据对,即可以获得与查询对象对应的第一查询数据。例如,第一查询数据为与张三对应的用户资料。
在操作104中,根据与查询标识对应的缓存数据对确定第一查询数据,然后对第一查询信息进行数据输出,以获得第一查询结果。可以理解的是,第一查询信息的数据输出可以是直接输出为第一查询结果,也可以通过对第一查询结果进行文本生成处理生成与查询请求在格式答复上对应的第一查询结果。例如:在查询请求为“姓名为张三的用户资料”,输出的第一查询结果可以为“(用户资料内容)”,也可以为“与张三对应的用户资料为(用户资料内容)”。通过统一形式的查询标识将查询标识对应至统一形式的key-value缓存数据对,在存在多个查询对象的情况下,能够快速确定与每一个查询对象对应的指定缓存库和缓存数据对,对缓存数据对的调取和查询结果的输出耗时更短,有利于降低应答时间,提升应答流畅性。
在一可实施方式中,方法还包括:操作201,当根据查询标识确定为不存在与查询标识对应的指定缓存库,根据查询标识在关系数据库进行数据查询,获得与查询标识对应的关系数据对;操作202,将与查询标识对应的关系数据对确定为第二查询数据,根据第二查询数据输出与查询请求对应的第二查询结果。
在操作101-操作104的实施场景中,查询请求中的查询对象均存在有与查询标识对应的指定缓存库,在另一种实施场景中,查询请求中的查询对象均不存在有与查询标识对应的指定缓存库,在该情况下,即在操作201中,需要在关系数据库中进行与查询标识对应的关系数据对。需要补充的是,预设缓存数据库中的包含多个缓存数据对,缓存数据对由前次查询请求中的查询对象和查询结果构建而成,即第一次查询张三的用户资料的情况下,通过在关系数据库中进行与张三对应的用户资料获得查询结果,然后根据张三-用户资料构建key-value结构体,获得与张三-用户资料对应的缓存数据对。当根据查询标识确定为不存在与查询标识对应的指定缓存库时,即可理解为该查询对象无法在缓存数据库中进行查找,需要在关系数据库中进行查找,通过关系数据库确定与查询标识对应的关系数据对。在操作202中,根据关系数据对确定第二查询数据,并通过第二查询数据输出与查询请求对应的第二查询结果。可以理解的是,第二查询结果同第一查询结果,其数据输出可以是直接输出为第二查询结果,也可以通过对第二查询结果进行文本生成处理生成与查询请求在格式答复上对应的第二查询结果。例如:在查询请求为“姓名为张三的用户资料”,输出的第二查询结果可以为“(用户资料内容)”,也可以为“与张三对应的用户资料为(用户资料内容)”。可以理解的是,关系数据库可以为物理数据库,而缓存数据库可以为内存数据库,如此操作,当查询对象直接在缓存数据库中确定对应的第一查询结果的情况下,装置可以快速从内存数据库中调取查询结果并进行输出,相较于在物理数据库中进行调取,在内存数据库中的调取和输出耗时更短,有利于降低应答时间,提升应答流畅性。
图2示出了本发明实施例一种数据查询方法关系数据对查询的实现流程示意图。
参见图2,在一可实施方式中,在操作201,获得与查询标识对应的关系数据对之后,方法还包括:操作203,基于查询标识和与查询标识对应的关系数据对生成缓存数据对;操作204,将缓存数据对存储于与查询标识对应的指定缓存库中。
需要说明的是,操作203-操作204可以与操作202同步执行,也可以先操作202执行,也可以后操作202执行,也可以在操作201之后,只执行操作202或只执行操作203-操作204,即操作203-操作203与操作202之间没有互相联系和先后影响。
操作203-操作204用于将从关系数据库查找获得的关系数据对生成缓存数据对,以在后续查询请求中,如果出现相关请求或相同查询对象的情况下,能够直接从缓存数据库中获得缓存数据对,有利于降低应答时间,提升应答流畅性。
具体在操作203中,将查询标识和关系数据对生成缓存数据对,以使在获得该查询标识的情况下能够直接从指定缓存库中确定缓存数据对。在操作204中将缓存数据对存储于与查询标识对应的指定缓存库中。其中,本方法可以预先对每一个缓存数据库按照一定规则进行分类,然后将查询标识按照规则存储至对应的指定缓存库。例如,可以按照查询标识所属类别对缓存数据库进行分类,通过查询标识所属类别将缓存数据对存储至对应的指定缓存库。
在一可实施方式中,方法还包括:当查询请求包含多个查询对象,首先,根据与指定缓存库对应的查询标识确定第一查询数据;然后,根据与关系数据库对应的查询标识确定第二查询数据;再后,根据第一查询数据和第二查询数据输出与查询请求对应的第三查询结果。
具体的,区别于操作101-操作104和操作201-操作202,在还有一种情况下,当存在多个查询对象的时候,存在部分查询对象的查询标识具有对应的缓存数据对,部分查询对象的查询标识不具有对应的缓存数据对。在该情况下,本方法通过与操作101-操作104提供的方法获得第一查询数据。然后通过操作201-操作202提供的方法获得第二查询数据,再后,根据第一查询数据和第二查询数据输出与查询请求对应的第三查询结果。由于第一查询数据的获得时间要快于第二查询数据的获得时间,本方法的第三查询结果除了直接输出、通过文本生成处理输出之外,还可以采用分步输出,即先输出第一查询数据再输出第二查询数据。需要补充的是,当存在多个查询对象的情况下,可以根据查询请求对第一查询数据和/或第二查询数据进行排版,以提高查询结果和查询请求的对应性。例如,查询请求为一张查询表,包括若干行查询对象和待查询数据。在输出查询结果的时候,可以将对第一查询数据和/或第二查询数据分别填入与查询对象对应的行内,再输出整张表格。可以理解的是,可能会出现查询标识存在对应的指定缓存库,但在该指定缓存库中无法查找对应的缓存数据对。在该情况下,可以将无法查找对应的缓存数据对通过关系数据库进行查找,以获得对应该查询标识的第二查询数据。
在一可实施方式中,根据与指定缓存库对应的查询标识确定所述第一查询数据,包括:首先,确定与同一个指定缓存库对应的多个查询标识,访问多个查询标识至同一个指定缓存库;然后,根据多个查询标识在同一个指定缓存库中就行批量查找,获得多个缓存数据对;再后,接收来自同一个指定缓存库的多个缓存数据对,根据多个缓存数据对确定第一查询数据。
为了进一步提升查询请求的查询效率,本方法可以通过批量查找的方式减少装置与数据库之间的数据交互次数,具体的,本方法首先确定与同一个指定缓存库对应的多个查询标识,然后,一次性访问多个查询标识至同一个指定缓存库,以在同一个指定缓存库中根据多个查询标识批量查找,获得多个缓存数据对;再后,装置获取到查找到的多个缓存数据对,并根据多个缓存数据对确定第一查询数据。提供该方式,装置与同一个指定缓存库只需要进行一次数据交互,进一步节省了数据交互的时间,提高应答速度,具体的,可以通过执行管道(pipeline)操作实现对数据的批量查找。例如,当查询请求中指示对三名用户进行信息查找,通过执行管道(pipeline)操作将与三名用户对应的查询标识在指定缓存库中进行查找,获得与三名用户对应的查询结果。
可以理解的是,本方法中,根据与关系数据库对应的查询标识确定所述第二查询数据,也可以包括:首先,确定与关系数据库对应的多个查询标识,访问多个查询标识至关系缓存库;然后,根据多个查询标识在关系缓存库中就行批量查找,获得多个关系数据对;再后,接收来自关系数据库的多个关系数据对,根据多个关系数据对确定第二查询数据。
在一可实施方式中,方法还包括:首先,对位于缓存数据库中的缓存数据对配置缓存失效时间阈值;然后,当与缓存数据对对应的数据存在时间满足缓存失效时间阈值,在缓存数据库中删除缓存数据对。
在一可实施方式中,方法还包括:首先,对位于缓存数据库中的缓存数据对配置自动刷新时间阈值;然后,当与缓存数据对对应的刷新间隔时间满足自动刷新时间阈值,根据关系数据库对缓存数据对进行数据刷新。
本方法还可以对每一条缓存数据对配置缓存失效时间阈值和/或自动刷新时间阈值,自定义注解每一对缓存数据对的失效时间和/或更新时间。具体的,以缓存数据对存入指定缓存库开始计时,获得数据存在时间,当缓存数据对对应的数据存在时间满足缓存失效时间阈值,即当缓存数据对对应的数据存在时间大于等于或大于缓存失效时间阈值,在缓存数据库中删除缓存数据对。例如,当设定缓存失效时间阈值为30分钟,当缓存数据对存入指定缓存库的时间到达30分钟,从指定缓存库中删除该缓存数据对。
同样以缓存数据对存入指定缓存库开始计时,当与缓存数据对对应的刷新间隔时间满足自动刷新时间阈值,即当与缓存数据对对应的刷新间隔时间大于等于或大于自动刷新时间阈值,则根据缓存数据对的查询标识从关系数据库中查找与查询标识对应的关系数据对,然后根据关系数据对更新缓存数据对,使查询请求能够在指定缓存库中获得较新的数据。例如,设定自动刷新时间阈值为1分钟,则缓存数据对存入指定缓存库的时间每过1分钟,就会根据关系数据库中的数据对缓存数据对进行刷新。具体的,设定自动刷新时间阈值为1分钟,缓存数据对存入指定缓存库时为A-1,一分钟后,根据A对关系数据库进行查找,获得A-2,将A-1更新为A-2;再过一分钟后,根据A对关系数据库进行查找,获得A-3,将A-2更新为A-3。
进一步的,为了避免存在多次查询需求的缓存数据对被删除,本方法还可以设置延时机制,在满足延时指标的情况下,对缓存数据对进行延时,以避免从指定缓存库中删除该缓存数据对。延时指标可以为在自动刷新时间阈值内查询次数到达指定阈值,例如30分钟内该缓存数据对被查询超过5次,就对该缓存数据对的缓存失效时间重新开始计时,例如,当该缓存数据对在10分钟时被查询超过5次,则从0s开始重新计时;或增加缓存失效时间阈值,例如,当该缓存数据对在10分钟时被查询超过5次,则增加10分钟的缓存失效时间阈值。
延时指标还可以为若该缓存数据对最后一次自动刷新时间阈值内被查询,则重新对该缓存数据对的缓存失效时间重新开始计时。例如,一缓存数据对的设定缓存失效时间阈值为30分钟,自动刷新时间阈值为1分钟,该缓存数据对在29分钟30秒被查询,则对该缓存数据从0s开始重新计时。
具体的,为实现上述数据查询方法的使用,本方法可以通过在集成SpringCacheable架构下,使用拦截器对缓存数据对进行解析注解或统一配置,对缓存数据对增加缓存失效时间阈值和自动刷新时间阈值,通过自定义注解实现配置缓存失效时间阈值,以确定缓存的过期时间,当取缓存数据对时检测是否已经达到自动刷新时间阈值,如已达到自动刷新时间阈值,则主动刷新缓存数据对。
在拦截器对缓存数据对进行解析注解或统一配置的情况下,将缓存数据对在技术上进行抽象,抽象成了通用组件,每一个缓存数据对都是单条数据结构,由于缓存数据对都是同一对象结构体,并将缓存数据对根据预设规则存储于指定缓存库中,具体的,可以存储于多个容器(node)中。当查询请求中存在单个或多个查询对象的情况下,可以直接从缓存数据对进行查找。
在接收到来自指定用户的查询请求,如查询请求中请求查询用户A、用户B、用户C、用户D、用户E的相关资料。
使用拦截器对查询请求进行注解,获得对应用户A、用户B、用户C、用户D、用户E的查询标识A、B、C、D、E。对A、B、C、D、E进行计算,确定与其所对应的缓存数据对所在的指定缓存库(node)。例如,A对应缓存库(node1),B、C对应缓存库(node2)。在node1中通过pipeline操作获得与A对应的缓存信息;在node2中通过pipeline操作获得与B、C对应的缓存信息。
然后在关系数据库中查找与D、E对应的相关信息。再后,整合与A对应的缓存信息、与B、C对应的缓存信息、与D、E对应的相关信息获得查询结果,输出查询结果至指定用户,以实现对查询请求的应答,同时,将D和与D对应的相关信息、E和与E对应的相关信息分别生成对应的缓存数据对,并使用异步线程根据计算确定对应的指定数据库(node3)中,存入对应的指定数据库(node3)中。根据计算结果,node3可以与node1和/或node2相同或不同。
进一步的,在进行缓存数据对更新、删除注解过程中,还可以进行统一异常捕获处理,并对异常缓存对进行异常封装,降低对业务模块的影响,打印相关缓存数据对的查询标识的命中、非命中日志,使用kibana提议日志监控平台查看和分析缓存命中率,以有利于后续更新修改。
图3示出了本发明实施例一种数据查询装置的实现模块示意图。
根据本发明实施例第二方面,还提供了一种数据查询装置,装置包括:获得模块301,用于获得查询请求,查询请求包含至少一个查询对象;分析模块302,用于对查询请求进行分析,获得与每一个查询对象对应的查询标识;查询模块303,用于当根据查询标识确定为存在有与查询标识对应的指定缓存库,根据查询标识在指定缓存库中进行数据查询,获得与查询标识对应的缓存数据对;其中,指定缓存数据库为多个预设缓存数据库的其中至少之一;输出模块304,用于将与查询标识对应的缓存数据对确定为第一查询数据,根据第一查询数据输出与查询请求对应的第一查询结果。
在一可实施方式中,查询模块303,还用于当根据查询标识确定为不存在与查询标识对应的指定缓存库,根据查询标识在关系数据库进行数据查询,获得与查询标识对应的关系数据对;输出模块304,还用于将与查询标识对应的关系数据对确定为第二查询数据,根据第二查询数据输出与查询请求对应的第二查询结果。
在一可实施方式中,装置还包括:生成模块305,用于基于查询标识和与查询标识对应的关系数据对生成缓存数据对;存储模块306,用于将缓存数据对存储于与查询标识对应的指定缓存库中。
在一可实施方式中,查询模块303,还用于当查询请求包含多个查询对象,根据与指定缓存库对应的查询标识确定第一查询数据;根据与关系数据库对应的查询标识确定第二查询数据;输出模块304,还用于根据第一查询数据和第二查询数据输出与查询请求对应的第三查询结果。
在一可实施方式中,查询模块303,包括:访问子模块3031,用于确定与同一个指定缓存库对应的多个查询标识,访问多个查询标识至同一个指定缓存库;查找子模块3032,用于根据多个查询标识在同一个指定缓存库中就行批量查找,获得多个缓存数据对;接收子模块3033,用于接收来自同一个指定缓存库的多个缓存数据对,根据多个缓存数据对确定第一查询数据。
在一可实施方式中,装置还包括:配置模块307,用于对位于缓存数据库中的缓存数据对配置缓存失效时间阈值;删除模块308,用于当与缓存数据对对应的数据存在时间满足缓存失效时间阈值,在缓存数据库中删除缓存数据对。
在一可实施方式中,配置模块307,还用于对位于缓存数据库中的缓存数据对配置自动刷新时间阈值;装置还包括:刷新模块309,用于当与缓存数据对对应的刷新间隔时间满足自动刷新时间阈值,根据关系数据库对缓存数据对进行数据刷新。
根据本发明实施例第三方面,还提供了一种设备,设备包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现上述第一方面任一的方法。
根据本发明实施例第四方面,还提供了一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现上述第一方面任一的方法。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元;既可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
另外,在本发明各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(Read Only Memory,ROM)、磁碟或者光盘等各种可以存储程序代码的介质。
或者,本发明上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、ROM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (9)
1.一种医学数据查询方法,其特征在于,所述方法包括:
获得查询请求,所述查询请求包含多个查询对象,所述查询对象为不同类型的用户资料;
对所述多个查询对象进行分析,确定所述多个查询对象对应的所有查询标识,根据所述所有查询标识确定对应的多个指定缓存库;
确定与同一个指定缓存库对应的多个查询标识,通过执行管道,访问多个查询标识至所述同一个指定缓存库;
根据多个查询标识在所述同一个指定缓存库中进行批量查找,通过查询标识与key进行匹配,获得多个缓存数据对,其中,每一条缓存数据对抽象成包含key-value的结构体;
接收来自所述同一个指定缓存库的所述多个缓存数据对,根据来自多个指定缓存库的缓存数据对确定所述第一查询数据,根据所述第一查询数据输出与所述查询请求对应的第一查询结果;
其中,所述指定缓存数据库为多个预设缓存数据库的其中至少之一,不同的查询对象的类型对应有不同的预设缓存数据库。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当所述查询标识不存在与所述查询标识对应的指定缓存库,根据所述查询标识在关系数据库进行数据查询,获得与查询标识对应的关系数据对;
将所述与查询标识对应的关系数据对确定为第二查询数据,根据所述第二查询数据输出与所述查询请求对应的第二查询结果。
3.根据权利要求2所述的方法,其特征在于,在获得与查询标识对应的关系数据对之后,所述方法还包括:
基于所述查询标识和所述与查询标识对应的关系数据对生成缓存数据对;
将所述缓存数据对存储于与所述查询标识对应的指定缓存库中。
4.根据权利要求2所述的方法,其特征在于,所述方法还包括:
根据与所述指定缓存库对应的查询标识确定所述第一查询数据;
根据与所述关系数据库对应的查询标识确定所述第二查询数据;
根据所述第一查询数据和所述第二查询数据输出与所述查询请求对应的第三查询结果。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
对位于所述缓存数据库中的缓存数据对配置缓存失效时间阈值;
当与所述缓存数据对对应的数据存在时间满足缓存失效时间阈值,在所述缓存数据库中删除所述缓存数据对。
6.根据权利要求2所述的方法,其特征在于,所述方法还包括:
对位于所述缓存数据库中的缓存数据对配置自动刷新时间阈值;
当与所述缓存数据对对应的刷新间隔时间满足自动刷新时间阈值,根据所述关系数据库对所述缓存数据对进行数据刷新。
7.一种医学数据查询装置,其特征在于,所述装置包括:
获得模块,用于获得查询请求,所述查询请求包含多个查询对象,所述查询对象为不同类型的用户资料;
分析模块,用于对所述多个查询对象进行分析,确定所述多个查询对象对应的所有查询标识,根据所述所有查询标识确定对应的多个指定缓存库;
查询模块,用于确定与同一个指定缓存库对应的多个查询标识,通过执行管道,访问多个查询标识至所述同一个指定缓存库;根据多个查询标识在所述同一个指定缓存库中进行批量查找,通过查询标识与key进行匹配,获得多个缓存数据对,其中,每一条缓存数据对抽象成包含key-value的结构体;
输出模块,用于接收来自所述同一个指定缓存库的所述多个缓存数据对,根据来自多个指定缓存库的缓存数据对确定所述第一查询数据,根据所述第一查询数据输出与所述查询请求对应的第一查询结果;
其中,所述指定缓存数据库为多个预设缓存数据库的其中至少之一,不同的查询对象的类型对应有不同的预设缓存数据库。
8.一种设备,其特征在于,所述设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-6中任一所述的方法。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-6中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011606796.7A CN112732751B (zh) | 2020-12-30 | 2020-12-30 | 一种医学数据处理方法、装置、存储介质及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011606796.7A CN112732751B (zh) | 2020-12-30 | 2020-12-30 | 一种医学数据处理方法、装置、存储介质及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112732751A CN112732751A (zh) | 2021-04-30 |
CN112732751B true CN112732751B (zh) | 2023-04-28 |
Family
ID=75610780
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011606796.7A Active CN112732751B (zh) | 2020-12-30 | 2020-12-30 | 一种医学数据处理方法、装置、存储介质及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112732751B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7365469B1 (ja) | 2022-08-05 | 2023-10-19 | 株式会社Cygames | Rdbに関する処理を行うためのシステム、キャッシュサーバ、方法、及びプログラム |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109376175A (zh) * | 2018-10-24 | 2019-02-22 | 上海中商网络股份有限公司 | 一种数据管理方法、装置、设备及存储介质 |
CN110413650A (zh) * | 2019-07-31 | 2019-11-05 | 广州虎牙科技有限公司 | 一种业务数据的处理方法、装置、设备和存储介质 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014094234A1 (en) * | 2012-12-18 | 2014-06-26 | Empire Technology Development Llc | Data caching based on social characteristics of users |
CN105630819B (zh) * | 2014-11-03 | 2019-06-11 | 阿里巴巴集团控股有限公司 | 一种缓存数据的刷新方法和装置 |
CN108595505B (zh) * | 2018-03-20 | 2022-06-24 | 创新先进技术有限公司 | 数据查询的方法和装置 |
CN108777718B (zh) * | 2018-06-22 | 2021-03-23 | 创新先进技术有限公司 | 一种业务系统通过客户端访问读多写少系统的方法和装置 |
US11226953B2 (en) * | 2018-10-10 | 2022-01-18 | Bentley Systems, Incorporated | Technique for generating a change cache database utilized to inspect changes made to a repository |
CN109492020A (zh) * | 2018-11-26 | 2019-03-19 | 北京知道创宇信息技术有限公司 | 一种数据缓存方法、装置、电子设备及存储介质 |
CN109800272A (zh) * | 2019-02-25 | 2019-05-24 | 广州虎牙信息科技有限公司 | 缓存数据同步方法、服务器、应用系统及存储装置 |
CN110489427A (zh) * | 2019-08-26 | 2019-11-22 | 杭州城市大数据运营有限公司 | 一种数据查询方法、装置、计算机设备和存储介质 |
-
2020
- 2020-12-30 CN CN202011606796.7A patent/CN112732751B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109376175A (zh) * | 2018-10-24 | 2019-02-22 | 上海中商网络股份有限公司 | 一种数据管理方法、装置、设备及存储介质 |
CN110413650A (zh) * | 2019-07-31 | 2019-11-05 | 广州虎牙科技有限公司 | 一种业务数据的处理方法、装置、设备和存储介质 |
Non-Patent Citations (1)
Title |
---|
b15735105314.Redis 批量查询优化.《CSDN》.2020,第1-9页. * |
Also Published As
Publication number | Publication date |
---|---|
CN112732751A (zh) | 2021-04-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8185546B2 (en) | Enhanced control to users to populate a cache in a database system | |
US9355152B2 (en) | Non-exclusionary search within in-memory databases | |
US10169491B2 (en) | Query servicing with access path security in a relational database management system | |
CN112434015B (zh) | 数据存储的方法、装置、电子设备及介质 | |
CN111339171B (zh) | 数据查询的方法、装置及设备 | |
CN111881011A (zh) | 日志管理方法、平台、服务器及存储介质 | |
CN111046036A (zh) | 数据同步方法、装置、系统及存储介质 | |
US20150234883A1 (en) | Method and system for retrieving real-time information | |
CN112269816B (zh) | 一种政务预约事项相关性检索方法 | |
US20230024345A1 (en) | Data processing method and apparatus, device, and readable storage medium | |
US20140019454A1 (en) | Systems and Methods for Caching Data Object Identifiers | |
US11561965B2 (en) | Data retrieval via incremental updates to graph data structures | |
US20140289268A1 (en) | Systems and methods of rationing data assembly resources | |
US11386131B2 (en) | System and method for multi-language search | |
CN114116762A (zh) | 一种离线数据模糊搜索方法、装置、设备和介质 | |
CN112732751B (zh) | 一种医学数据处理方法、装置、存储介质及设备 | |
US7925617B2 (en) | Efficiency in processing queries directed to static data sets | |
CN113377876A (zh) | 基于Domino平台的数据分库处理方法、装置及平台 | |
CN112434062A (zh) | 准实时数据处理方法、装置、服务器及存储介质 | |
KR100991560B1 (ko) | 카테고리 별 키워드의 입력 순위를 제공하기 위한 검색서비스 시스템 및 그 방법 | |
US20150154268A1 (en) | Method of discovering and exploring feature knowledge | |
US11645283B2 (en) | Predictive query processing | |
CN112416626B (zh) | 一种数据处理方法和装置 | |
TWI547888B (zh) | A method of recording user information and a search method and a server | |
US11500837B1 (en) | Automating optimizations for items in a hierarchical data store |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |