CN116126876A - 数据更新方法及装置、电子设备及存储介质 - Google Patents
数据更新方法及装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN116126876A CN116126876A CN202310004532.1A CN202310004532A CN116126876A CN 116126876 A CN116126876 A CN 116126876A CN 202310004532 A CN202310004532 A CN 202310004532A CN 116126876 A CN116126876 A CN 116126876A
- Authority
- CN
- China
- Prior art keywords
- cache
- data
- parameter
- updating
- target data
- 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
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/23—Updating
- G06F16/2308—Concurrency control
- G06F16/2315—Optimistic concurrency control
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供了一种数据更新方法及装置、电子设备及存储介质,涉及计算机技术领域。该数据更新方法包括:响应于针对目标数据的查询请求,确定缓存数据库中是否存在目标数据对应的缓存数据;若缓存数据库中不存在目标数据对应的缓存数据,则获取目标数据对应的参数组合;将参数组合以及目标缓存查询时间添加到参数组合列表中,目标缓存查询时间为针对目标数据的查询时间,参数组合列表包括多个参数组合和多个缓存查询时间;基于多个缓存查询时间,对多个参数组合各自对应的缓存数据进行更新。提高了缓存数据的实时性,降低了常用的缓存数据失效的可能性,提升了用户的查询体验。
Description
技术领域
本申请涉及计算机技术领域,具体涉及一种数据更新方法及装置、电子设备及存储介质。
背景技术
随着时代的信息化,需要存储的数据也越来越多,为了方便用户对数据的快速存取,一般都会采用构建缓存系统的方式来解决这一问题。
在用户需要查询数据库中的数据时,缓存系统通常会将该数据存储为缓存数据放入缓存库中,以便减少用户下次对该数据进行查询的查询时间。但相关技术中的缓存数据一般都设定了失效时间,当缓存数据达到失效时间时,缓存数据就会失效,在缓存数据失效后用户在查询该数据时,仍然需要从数据库调取该数据以供用户的查询。但若延长缓存数据失效的时间,又无法保证缓存数据的实时性。所以如何更新缓存数据以保证缓存数据的实时性是当前亟待解决的问题。
发明内容
为了解决上述技术问题,本申请实施例提供了一种数据更新方法及装置、电子设备及存储介质,以保证缓存数据的实时性。
第一方面,本申请一实施例提供了一种数据更新方法,该方法包括:
响应于针对目标数据的查询请求,确定缓存数据库中是否存在目标数据对应的缓存数据;若缓存数据库中不存在目标数据对应的缓存数据,则获取目标数据对应的参数组合,参数组合为在缓存数据库中调取目标数据对应的缓存数据以及从数据库中调取目标数据的索引;将参数组合以及目标缓存查询时间添加到参数组合列表中,目标缓存查询时间为针对目标数据的查询时间,参数组合列表包括多个参数组合和多个缓存查询时间;基于多个缓存查询时间,对多个参数组合各自对应的缓存数据进行更新。
第二方面,本申请一实施例提供了一种数据更新装置,该装置包括:确定模块,用于响应于针对目标数据的查询请求,确定缓存数据库中是否存在目标数据对应的缓存数据;获取模块,用于若缓存数据库中不存在目标数据对应的缓存数据,则获取目标数据对应的参数组合,参数组合为在缓存数据库中调取目标数据对应的缓存数据以及从数据库中调取目标数据的索引;添加模块,用于将参数组合以及目标缓存查询时间添加到参数组合列表中,目标缓存查询时间为针对目标数据的查询时间,参数组合列表包括多个参数组合和多个缓存查询时间;更新模块,用于基于多个缓存查询时间,对多个参数组合各自对应的缓存数据进行更新。
第三方面,本申请一实施例提供了一种电子设备,该电子设备包括:处理器;用于存储处理器可执行指令的存储器;该处理器用于执行第一方面所述的方法。
第四方面,本申请一实施例提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序用于执行第一方面所述的方法。
本申请实施例提供的数据更新方法,响应于针对目标数据的查询请求,确定缓存数据库中是否存在目标数据对应的缓存数据;若缓存数据库中不存在目标数据对应的缓存数据,则获取目标数据对应的参数组合,参数组合为在缓存数据库中调取目标数据对应的缓存数据以及从数据库中调取目标数据的索引;将参数组合以及目标缓存查询时间添加到参数组合列表中,目标缓存查询时间为针对目标数据的查询时间,参数组合列表包括多个参数组合和多个缓存查询时间;基于多个缓存查询时间,对多个参数组合各自对应的缓存数据进行更新。通过将参数组合以及目标缓存查询时间添加到参数组合列表中实现了对参数组合列表的更新,以及基于缓存查询时间对缓存数据进行更新,实现了对缓存数据库中的参数组合列表以及缓存数据的双层更新,避免了对缓存数据的重复更新,减小了进行缓存时的工作量,提高了缓存数据的实时性以及时效性,降低了常用的缓存数据失效的可能性,提升了用户的查询体验。
附图说明
通过结合附图对本申请实施例进行更详细的描述,本申请的上述以及其他目的、特征和优势将变得更加明显。附图用来提供对本申请实施例的进一步理解,并且构成说明书的一部分,与本申请实施例一起用于解释本申请,并不构成对本申请的限制。在附图中,相同的参考标号通常代表相同部件或步骤。
图1所示为本申请实施例所适用的一场景示意图。
图2a所示为本申请一示例性实施例提供的数据更新方法的流程示意图。
图2b示出了缓存数据库的结构示意图。
图3a所示为本申请一示例性实施例提供的数据查询方法的流程示意图。
图3b示出了数据查询与更新的流程示意图。
图4所示为本申请一示例性实施例提供的一种数据更新装置的结构示意图。
图5所示为本申请一实施例提供的电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例的技术方案应用于缓存系统中,缓存系统用于存储用户短期内查询的数据,以便用户对数据的快速存取。
在用户需要查询数据库中的数据时,缓存系统通常会将该数据存储为缓存数据放入缓存库中,以便减少用户下次对该数据进行查询的查询时间。但相关技术中的缓存数据一般都设定了失效时间,当缓存数据达到失效时间时,缓存数据就会失效,缓存数据失效后再次查询该数据时,仍然需要从数据库调取该数据,由于数据库中的数据量大、涉及底层数据太多,造成用户访问数据库时响应时间较长,数据加载较慢的问题,极大影响用户体验。但若延长缓存数据失效的时间,又无法保证缓存数据的实时性。
为了更新缓存数据以保证缓存数据的实时性,发明人经过一系列的研究提出了本申请的技术方案。在本申请实施例中,响应于针对目标数据的查询请求,确定缓存数据库中是否存在目标数据对应的缓存数据;若缓存数据库中不存在目标数据对应的缓存数据,则获取目标数据对应的参数组合,参数组合为在缓存数据库中调取目标数据对应的缓存数据以及从数据库中调取目标数据的索引;将参数组合以及目标缓存查询时间添加到参数组合列表中,目标缓存查询时间为针对目标数据的查询时间,参数组合列表包括多个参数组合和多个缓存查询时间;基于多个缓存查询时间,对多个参数组合各自对应的缓存数据进行更新。通过将参数组合以及目标缓存查询时间添加到参数组合列表中实现了对参数组合列表的更新,以及基于缓存查询时间对缓存数据进行更新,实现了对缓存数据库中的参数组合列表以及缓存数据的双层更新,避免了对缓存数据的重复更新,减小了进行缓存时的工作量,提高了缓存数据的实时性以及时效性,降低了常用的缓存数据失效的可能性,提升了用户的查询体验。
图1所示为本申请实施例所适用的一场景示意图。该场景可以包括数据查询前端101以及数据查询装置102,其中数据查询装置102中包括数据更新装置103。
示例性地,数据查询前端101可以是网页、APP(Application,应用程序)以及小程序等,此处不做限定。数据查询装置102用于查询用户需要的目标数据。数据更新装置103用于对目标数据对应的缓存数据进行更新,具体更新方式在下述实施例中会具体介绍,此处不做赘述。
在实际应用中,以数据查询前端101为网页为例,用户可以在网页中点击网页上的查询控件对目标数据进行查询,在用户点击目标数据进行查询后,数据查询装置102会先在缓存数据库中查询是否存在该目标数据对应的缓存数据,若存在该目标数据对应的缓存数据,则会直接从缓存数据库中调取目标数据对应的缓存数据并通过页面反馈给用户,若不存在该目标数据对应的缓存数据,数据更新装置103会在数据库中调取该目标数据并将该目标数据对应的缓存数据进行更新,该目标数据对应的缓存数据更新后由数据查询装置102通过页面反馈给用户。
图2a所示为本申请一示例性实施例提供的数据更新方法的流程示意图。示例性地。如图2a所示,本申请实施例提供的数据更新方法包括如下步骤。
步骤S201:响应于针对目标数据的查询请求,判断缓存数据库中是否存在目标数据对应的缓存数据。
示例性地,目标数据可以为用户根据需求在网页上查询的数据,缓存数据库用于存储从数据库中调取的目标数据,目标数据存储至缓存数据库中后则作为目标数据对应的缓存数据。
示例性地,将目标数据从数据库中调取并存储到缓存数据库中后,并且该目标数据在缓存数据库中并未失效,则可以认为缓存数据库中存在目标数据对应的缓存数据。
示例性地,在实际应用过程中,若步骤S201的判断结果为是,即缓存数据库中存在目标数据对应的缓存数据,则执行步骤S202,若步骤S201的判断结果为否,即缓存数据库中不存在目标数据对应的缓存数据,则执行步骤S203。
步骤S202:从缓存数据库中调取目标数据对应的缓存数据并进行反馈。
由于目标数据对应的缓存数据存在于缓存数据库中,所以可以将该缓存数据从缓存数据库中直接调取并反馈给查询该目标数据的用户,节省了从数据库中下载该目标数据的时间,提高了用户查询目标数据的效率。
步骤S203:获取目标数据对应的参数组合。
示例性地,参数组合为在缓存数据库中调取目标数据对应的缓存数据以及从数据库中调取目标数据的索引。
示例性地,参数组合由多个业务数据组成,比如bizParam.method(路由方法)以及media(媒体)、bizDate(日期)、bizHour(小时)、biz.current(当前页数)、biz.size(每页条数)、bizParam.orderField(排序字段)、bizParam.orderType(排序类型)中的一个或多个,此处不做具体限定,业务数据可以示出与该目标数据相关的一些信息,例如该目标数据是在页面1查询的,当前时间是2022年1月1日的上午9点,该日头条页面对应的路由方法为method1,那么得到参数组合就会是页面1-2022-01-01-09:00-method1。
步骤S204:将参数组合以及目标缓存查询时间添加到参数组合列表中。
示例性地,目标缓存查询时间为针对目标数据的查询时间,参数组合列表包括多个参数组合和多个缓存查询时间,参数组合列表与缓存数据均包含于缓存数据库中。
为了方便理解,图2b示出了缓存数据库的结构示意图。需要说明的是,图2b中是以参数组合列表中有三个参数组合为例,实际上,参数组合列表中参数组合的数量具体由缓存数据库的存储上限来定。
如图2b所示,缓存数据库中包括了参数组合列表以及缓存数据。在参数组合列表中,媒体1-日期1-小时1-路由方法1、媒体2-日期2-小时2-路由方法2以及媒体3-日期3-小时3-路由方法3表示参数组合,缓存查询时间1、缓存查询时间2以及缓存查询时间3表示与上述三个参数组合分别对应的缓存查询时间。在缓存数据中,缓存数据1、缓存数据2以及缓存数据3通过路由方法1、路由方法2以及路由方法3与上述三个参数组合对应。
在实际应用时,例如用户查询的目标数据对应的参数组合为媒体1-日期1-小时1-路由方法1,那么该参数组合对应的缓存查询时间1便会更新为用户查询该目标数据的时间,并且通过该参数组合中的路由方法1,在多个缓存数据中查找到对应的缓存数据1并返回给用户。例如用户查询的目标数据对应的参数组合为媒体4-日期4-小时4-路由方法4(图中未示出),但参数组合列表中不存在该参数组合,此时会将该参数组合添加至参数组合列表中,并且查询该目标数据对应的目标缓存查询时间对应添加至参数组合列表中,即缓存查询时间4添加至参数组合列表中,并从数据库中调取对应的目标数据并存储至缓存数据库中并返回给用户。
在实际应用中,只有参数组合列表中存在的参数组合对应的目标数据才会作为缓存数据存储在缓存数据库中并参与缓存数据的更新以提高目标数据的查询效率,所以可以认为参数组合列表中不存在的参数组合对应的目标数据是不存在对应的缓存数据的,此时就会依据用户查询的目标数据对应的参数组合以及查询该目标数据对应的目标缓存查询时间对参数组合列表组合进行更新,即将该参数组合以及对应的目标缓存查询时间添加到该参数组合列表中。当然也存在该参数组合由于参数组合列表的更新而从参数组合列表中被剔除,但对应的缓存数据还在缓存数据库中未失效的情况,该种情况仍会依据用户查询的目标数据对应的参数组合以及查询该目标数据对应的目标缓存查询时间对参数组合列表组合进行更新,以延长该缓存数据的失效时间。
步骤S205:基于多个缓存查询时间,对多个参数组合各自对应的缓存数据进行更新。
示例性地,参数组合列表中的每个参数组合都有各自对应的缓存查询时间,通过多个缓存查询时间可以表征用户最近查询的目标数据,或者说用户比较常用的目标数据。
具体地,基于多个缓存查询时间,对多个参数组合各自对应的缓存数据进行更新,可以包括如下步骤。
步骤A:确定多个缓存查询时间中与目标缓存查询时间最近的M个第一参数组合。
示例性地,目标缓存查询时间可以认为是用户最新查询的目标数据的时间,多个缓存查询时间中与目标缓存查询时间最近的M个第一参数组合分别对应的目标数据可以认为是用户最近查询的M个目标数据,或者说是用户最常用的M个目标数据,M的数量可以根据缓存数据库的存储上限来设置。
作为一种实现方式,可以基于多个缓存查询时间,对多个参数组合进行排序,得到多个参数组合的第一排序结果;基于多个参数组合的第一排序结果,确定参数组合列表中的多个参数组合各自的排名;确定排名满足第一预设排名条件的第一参数组合。
示例性地,参数组合列表中的每一个参数组合都有对应的缓存查询时间,在进行参数组合的排序时,可以基于多个缓存查询时间,按照参数组合对应的缓存查询时间从近到远的顺序对参数组合进行排序,得到第一排序结果,第一排序结果靠前的参数组合对应的缓存数据可以认为是用户最近查询的,或者说是比较常用的数据。
示例性地,第一排序结果为利用缓存查询时间对与缓存查询时间对应的参数组合在参数组合列表中的排名情况,第一预设排名条件可以是排名前M的参数组合,即上述M个第一参数组合,也可以是该参数组合的排名为参数列表中所有参数组合的前指定百分比,例如前20%。需要说明的是,无论预设排名条件为什么形式,最终确定的参数组合的数量表征的都为缓存数据库的存储上限。
步骤B:对M个第一参数组合分别对应的缓存数据进行更新。
通过对用户常用的目标数据对应的缓存数据进行更新,提高用户查询目标数据的效率,提升了用户的体验。
具体地,参数组合列表中还可以包括多个缓存更新时间,多个缓存更新时间与多个缓存查询时间之间具有对应关系,其中缓存更新时间可以表征缓存数据的失效时间,缓存更新时间越早,离缓存数据的失效时间越近,缓存数据的失效时间可以设定为距离缓存更新时间的指定时间,指定时间可以根据目标数据的实用性预先设定,参数组合列表中的每个参数组合各自对应的缓存数据的失效时间可以相同也可以不同,均根据预先设定,此处不做限定。
用户也可以批量进行目标数据的查询,在这种情况下多个目标数据的目标缓存查询时间是相同的,或不同用户分别查询不同缓存数据时,也可能出现多个目标数据的目标缓存查询时间是相同的情况,所以可能就会出现无法取到正好M个第一参数组合分别对应的缓存数据的情况,所以进一步的,对M个第一参数组合分别对应的缓存数据进行更新,包括如下步骤。
步骤B1:若M个第一参数组合中存在缓存查询时间相同的N个第二参数组合,则根据N个第二参数组合各自的缓存更新时间,将N个第二参数组合中的Q个第二参数组合从M个第一参数组合中剔除。
示例性地,M、N、Q均为正整数,M≥N,N≥2,Q≥1。
具体地,在M个第一参数组合中缓存查询时间相同的N个第二参数组合中,可能每个第二参数组合的缓存查询时间都相同,也可能一部分第二参数组合对应的一个缓存查询时间,另一部分第二参数组合对应另一个缓存查询时间,具体第二参数组合中有几部分缓存查询时间不同的第二参数组合根据实际情况来看,并不限制于两个。在每个第二参数组合的缓存查询时间都相同的情况下,会选择N个第二参数组合中缓存更新时间最晚的Q个第二参数组合从M个第一参数组合中剔除,其中缓存更新时间最晚表征了该缓存更新时间对应的缓存数据距离失效时间最久。在一部分第二参数组合对应的一个缓存查询时间,另一部分第二参数组合对应另一个缓存查询时间的情况下,先确定每部分第二参数组合中缓存查询时间最早的一部分第二参数组合,然后在该部分第二参数组合中选择N个第二参数组合中缓存更新时间最晚的Q个第二参数组合从M个第一参数组合中剔除。
作为一种实现方式,可以根据与多个相同的缓存查询时间对应的缓存更新时间,对与多个相同的缓存查询时间对应的参数组合进行排序,得到多个参数组合的第二排序结果;基于第二排序结果,确定多个参数组合的各自的排名,确定排名满足第一预设排名条件的参数组合;将排名不满足第一预设排名条件的参数组合从参数组合列表中剔除。
示例性地,在缓存查询时间相同的情况下,会将缓存查询时间相同的参数组合按照缓存更新时间从近到远的顺序进行排序,得到多个参数组合的第二排序结果,第二排序结果为在第一排序结果的基础上按照缓存更新时间对缓存查询时间相同的参数组合进行进一步排序的结果。
在对参数组合对应的缓存数据进行更新时,在优先更新用户常用的缓存数据的前提下可以优先更新更快失效的缓存数据,提高了缓存数据的实时性,并且通过将超出参数组合列表的存储上限的参数组合从参数组合列表中剔除,减轻了缓存数据库的负担,避免了缓存数据库中缓存过多的无用数据。
步骤B2:对剔除后剩余的M-Q个第一参数组合分别对应的缓存数据进行更新。
具体地,对剔除后剩余的M-Q个第一参数组合分别对应的缓存数据进行更新,可以包括如下步骤。
步骤B2-1:在数据库中查找M-Q个第一参数组合分别对应的目标数据。
示例性地,在数据库中可以利用路由方法参数对目标数据进行标注,该路由方法参数的名称与组成该目标数据对应的参数组合的路由方法参数的名称相同,可以利用相同名称的路由方法参数在数据库中查找对应的目标数据。
步骤B2-2:利用目标数据,在缓存线程池中对M-Q个第一参数组合对应的缓存数据分别进行更新。
示例性地,线程池是一种多线程处理形式,在缓存线程池中,可以同时对M-Q个第一参数组合对应的缓存数据分布进行更新。
其中,利用目标数据对缓存数据进行更新,保证了缓存数据的实时性。
作为一种实现方式,由于每次都对参数组合列表中的所有参数组合对应的缓存数据进行更新,对缓存线程池的负荷也是比较大的,所以该方法还可以包括:确定多个参数组合分别对应的缓存更新时间;对多个参数组合中,缓存更新时间满足预设时间条件的参数组合对应的缓存数据进行更新。
示例性地,预设时间条件为参数组合可以进行更新的缓存更新时间的阈值,以预设时间条件为两分钟为例,在参数组合列表中,缓存更新时间为两分钟以内的参数组合对应的缓存数据即可进行更新。
在对满足预设时间条件的参数组合对应的缓存数据进行缓存数据更新时,一方面会对该缓存数据的缓存更新时间进行刷新,另一方面会利用数据库中的目标数据对缓存数据进行更新,保证了缓存数据的实时性。
通过对参数列表组合中满足预设时间条件的参数组合对应的缓存数据进行更新,降低了常用的缓存数据失效的可能性,提升了用户的查询体验。
由于用户查询了该目标数据后该目标数据对应的目标缓存查询时间也会发生改变,所以该方法还可以包括:在缓存数据库中存在目标数据对应的缓存数据的情况下,更新目标数据对应的目标缓存查询时间;基于更新后的目标数据对应的目标缓存查询时间,对多个参数组合对应的缓存数据进行更新。
示例性地,在对参数组合对应的缓存数据进行更新时,通过更新后的目标数据对应的目标缓存查询时间对缓存数据进行更新,可以优先更新用户常用的缓存数据,提高了目标数据的查询效率。
为了保证缓存数据的实时性,该方法还可以包括:按照预设时间间隔遍历参数组合列表,确定缓存更新时间在预设时间范围内的参数组合;将缓存更新时间在预设时间范围内的参数组合对应的缓存数据进行更新。
示例性地,预设时间间隔为对参数组合列表进行定时遍历的时间,例如可以是一分钟,每过一分钟会针对参数组合列表中多个参数组合进行遍历,从而确定多个参数组合中缓存更新时间在预设时间范围内的参数组合,并对缓存更新时间在预设时间范围内的参数组合对应的缓存数据进行更新,其中,预设时间范围可以表征缓存数据即将失效的预警范围,在该预设时间范围内的参数组合对应的缓存数据可以进行更新,以提高缓存数据的时效性。通过定时对参数组合列表进行遍历,从而将即将失效的缓存数据进行更新,避免了对时效较长的缓存数据的重复更新,提高了缓存数据的时效性,提高了用户的体验。
在实际应用中,用户可以在网页上查询需要的目标数据,在用户通过点击网页上的查询控件对该目标数据进行查询时,会调用出与该目标数据对应的多个业务参数形成参数组合,通过参数组合中的路由方法参数,可以确定该参数组合与缓存数据库中的缓存数据、与数据库中的目标数据、以及与网页对应的后端API接口的映射关系,通过该映射关系,便可以在用户点击的网页上的查询控件时,确定与目标数据对应的参数组合以及与该网页对应的后端API接口,通过该后端API接口与参数组合列表建立连接,并通过本申请实施例提及的数据更新方法进行缓存数据的更新与调取,在调取到目标数据对应的缓存数据后,通过该后端API接口将缓存数据返回到对应的网页呈现给用户。
在本申请实施例中,通过对缓存数据库中的参数组合列表以及缓存数据的双层更新,避免了对缓存数据的重复更新,减小了进行缓存时的工作量,提高了缓存数据的实时性以及时效性,降低了常用的缓存数据失效的可能性,提升了用户的查询体验。
图3a所示为本申请一示例性实施例提供的数据查询方法的流程示意图。示例性地。如图3a所示,本申请实施例提供的数据查询方法包括如下步骤。
步骤S301:响应于用户针对目标数据的查询请求,确定与目标数据对应的业务数据。
示例性地,用户可以通过点击网页上的查询控件来发送查询请求,并且每个目标数据都对应多个业务数据。其中,业务数据可以包括bizParam.method(路由方法)以及media(媒体)、bizDate(日期)、bizHour(小时)、biz.current(当前页数)、biz.size(每页条数)、bizParam.orderField(排序字段)、bizParam.orderType(排序类型)中的一个或多个,此处不做具体限定。
步骤S302:利用业务数据组成目标数据对应的参数组合。
示例性地,将业务数据连接到一起,即可得到参数组合。
步骤S303:判断缓存数据库中是否存在目标数据对应的缓存数据。
示例性地,缓存数据库可以包括多个子缓存数据库,每个子缓存数据库中可以存储一条缓存数据,数据库也可以包括多个子数据库,每个子数据库中可以存储一条目标数据。
具体地,可以预先将目标数据、与该目标数据对应的缓存数据、存储该目标数据的子数据库以及存储该目标数据对应的缓存数据的子缓存数据库,都利用相同名称的路由方法参数进行标注,通过该路由方法参数即可快速且准确的判断缓存数据库中是否存在目标数据对应的缓存数据,可以认为缓存数据库中,若存在与该目标数据具有相同名称标注的路由方法参数的子缓存数据库,则可以认为缓存数据库中存在目标数据对应的缓存数据。
示例性地,在实际应用过程中,若步骤S303的判断结果为是,即存在目标数据对应的缓存数据,则执行步骤S304,若步骤S303的判断结果为否,即不存在目标数据对应的缓存数据,则执行步骤S305。
步骤S304:将缓存数据返回至用户。
示例性地,缓存数据会返回至用户查询目标数据的网页中。
步骤S305:从数据库中查找参数组合对应的目标数据更新至缓存数据库中并返回至用户。
其中,目标数据的更新方式为利用上述图2a提及的实施例中的方法实现,此处不再赘述。
为了方便理解,图3b示出了数据查询与更新的流程示意图。
如图3b所示,在实际应用中,在接收到用户查询目标数据的查询请求后,会确定该目标数据对应的多个业务数据,并将该业务数据组成该目标数据对应的参数组合,其中,该业务数据中至少包括路由方法参数。利用该路由方法参数可以得到用户需要的目标数据,其中,需要先利用该路由方法参数确定缓存数据库中是否存在该目标数据对应的缓存数据,在缓存数据库中存在该目标数据对应的缓存参数的情况下,可以直接将目标数据对应的缓存数据返回至用户并对参数组合列表进行更新,在缓存数据库中不存在该目标数据对应的缓存参数的情况下,利用该路由方法参数从数据库中提取对应的目标数据返回至用户并将该目标数据更新至缓存数据库中作为缓存数据。
在未接收到用户查询目标数据的请求时,可以设置定时任务对参数组合列表进行定时遍历,在遍历了参数组合列表后,会对参数组合列表中满足更新条件的参数组合对应的缓存数据在缓存线程池中进行更新,其中更新条件可以是参数组合对应的缓存数据对应的失效时间达到时间阈值,比如时间阈值为两分钟,在缓存数据对应的失效时间在两分钟以内时,则会对该参数组合对应的缓存数据进行更新,其中参数组合列表最初为根据用户可能常用的目标数据对应的参数组合进行预设,在用户进行目标数据的查询之后,根据用户查询目标数据的目标缓存查询时间以及该目标数据对应的缓存数据的缓存更新时间进行更新。
上文结合图2a,详细描述了本申请的数据更新方法实施例,下面结合图4,详细描述本申请的数据更新装置实施例。应理解,数据更新方法实施例的描述与数据更新装置实施例的描述相互对应,因此,未详细描述的部分可以参见前面方法实施例。
图4所示为本申请一示例性实施例提供的一种数据更新装置的结构示意图。如图4所示,本申请实施例提供的一种数据更新装置可以包括如下模块。
确定模块401,用于响应于针对目标数据的查询请求,确定缓存数据库中是否存在目标数据对应的缓存数据。
获取模块402,用于若缓存数据库中不存在目标数据对应的缓存数据,则获取目标数据对应的参数组合。
示例性地,参数组合为在缓存数据库中调取目标数据对应的缓存数据以及从数据库中调取目标数据的索引。
添加模块403,用于将参数组合以及目标缓存查询时间添加到参数组合列表中。
示例性地,目标缓存查询时间为针对目标数据的查询时间,参数组合列表包括多个参数组合和多个缓存查询时间;
更新模块404,用于基于多个缓存查询时间,对多个参数组合各自对应的缓存数据进行更新。
在本申请一实施例中,更新模块404还用于,确定多个缓存查询时间中与目标缓存查询时间最近的M个第一参数组合;对M个第一参数组合分别对应的缓存数据进行更新。
在本申请一实施例中,更新模块404还用于,若M个第一参数组合中存在缓存查询时间相同的N个第二参数组合,则根据N个第二参数组合各自的缓存更新时间,将N个第二参数组合中的Q个第二参数组合从M个第一参数组合中剔除;对将剔除后剩余的M-Q个第一参数组合分别对应的缓存数据进行更新;其中,M、N、Q均为正整数,M≥N,N≥2,Q≥1。
在本申请一实施例中,该数据更新装置还可以包括如下模块。
第一确定模块,用于确定多个参数组合分别对应的缓存更新时间。
第一更新模块,用于对多个参数组合中,缓存更新时间满足预设时间条件的参数组合对应的缓存数据进行更新。
在本申请一实施例中,更新模块404还用于,在数据库中查找M-Q个第一参数组合分别对应的目标数据;利用目标数据,在缓存线程池中对M-Q个第一参数组合对应的缓存数据分别进行更新。
在本申请一实施例中,该数据更新装置还可以包括如下模块。
第二更新模块,用于若缓存数据库中存在目标数据对应的缓存数据,则更新目标数据对应的目标缓存查询时间。
第三更新模块,用于基于更新后的目标数据对应的目标缓存查询时间,对多个参数组合对应的缓存数据进行更新。
在本申请一实施例中,该数据更新装置还可以包括如下模块。
第二确定模块,用于按照预设时间间隔遍历参数组合列表,确定缓存更新时间在预设时间范围内的参数组合。
第四更新模块,用于将缓存更新时间在预设时间范围内的参数组合对应的缓存数据进行更新。
应当理解,图4提供的数据更新装置中的确定模块401、获取模块402、添加模块403以及更新模块404的操作和功能可以参考上述图2a提供的数据更新方法,为了避免重复,在此不再赘述。
下面,参考图5来描述根据本申请实施例的电子设备。图5所示为本申请一示例性实施例提供的电子设备的结构示意图。
如图5所示,电子设备50包括一个或多个处理器501和存储器502。
处理器501可以是中央处理单元(CPU)或者具有数据处理能力和/或指令执行能力的其他形式的处理单元,并且可以控制电子设备50中的其他组件以执行期望的功能。
存储器502可以包括一个或多个计算机程序产品,计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。非易失性存储器例如可以包括只读存储器(ROM)、硬盘、闪存等。在计算机可读存储介质上可以存储一个或多个计算机程序指令,处理器501可以运行程序指令,以实现上文的本申请的各个实施例的方法以及/或者其他期望的功能。在计算机可读存储介质中还可以存储诸如包括参数组合、参数组合列表等各种内容。
在一个示例中,电子设备50还可以包括:输入装置503和输出装置504,这些组件通过总线系统和/或其他形式的连接机构(未示出)互连。
该输入装置503可以包括例如键盘、鼠标等等。
该输出装置504可以向外部输出各种信息,包括参数组合、参数组合列表等。该输出装置504可以包括例如显示器、扬声器、打印机、以及通信网络及其所连接的远程输出设备等等。
当然,为了简化,图5中仅示出了该电子设备50中与本申请有关的组件中的一些,省略了诸如总线、输入/输出接口等等的组件。除此之外,根据具体应用情况,电子设备50还可以包括任何其他适当的组件。
除了上述方法和设备以外,本申请的实施例还可以是计算机程序产品,其包括计算机程序指令,计算机程序指令在被处理器运行时使得处理器执行本说明书上述描述的根据本申请各种实施例的方法中的步骤。
计算机程序产品可以以一种或多种程序设计语言的任意组合来编写用于执行本申请实施例操作的程序代码,程序设计语言包括面向对象的程序设计语言,诸如Java、C++等,还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。
此外,本申请的实施例还可以是计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述描述的根据本申请各种实施例的方法中的步骤。
所述计算机可读存储介质可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以包括但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
以上结合具体实施例描述了本申请的基本原理,但是,需要指出的是,在本申请中提及的优点、优势、效果等仅是示例而非限制,不能认为这些优点、优势、效果等是本申请的各个实施例必须具备的。另外,上述公开的具体细节仅是为了示例的作用和便于理解的作用,而非限制,上述细节并不限制本申请为必须采用上述具体的细节来实现。
本申请中涉及的器件、装置、设备、系统的方框图仅作为例示性的例子并且不意图要求或暗示必须按照方框图示出的方式进行连接、布置、配置。如本领域技术人员将认识到的,可以按任意方式连接、布置、配置这些器件、装置、设备、系统。诸如“包括”、“包含”、“具有”等等的词语是开放性词汇,指“包括但不限于”,且可与其互换使用。这里所使用的词汇“或”和“和”指词汇“和/或”,且可与其互换使用,除非上下文明确指示不是如此。这里所使用的词汇“诸如”指词组“诸如但不限于”,且可与其互换使用。
还需要指出的是,在本申请的装置、设备和方法中,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本申请的等效方案。
提供所公开的方面的以上描述以使本领域的任何技术人员能够做出或者使用本申请。对这些方面的各种修改对于本领域技术人员而言是非常显而易见的,并且在此定义的一般原理可以应用于其他方面而不脱离本申请的范围。因此,本申请不意图被限制到在此示出的方面,而是按照与在此公开的原理和新颖的特征一致的最宽范围。
为了例示和描述的目的已经给出了以上描述。此外,此描述不意图将本申请的实施例限制到在此公开的形式。尽管以上已经讨论了多个示例方面和实施例,但是本领域技术人员将认识到其某些变型、修改、改变、添加和子组合。
Claims (10)
1.一种数据更新方法,其特征在于,包括:
响应于针对目标数据的查询请求,确定缓存数据库中是否存在所述目标数据对应的缓存数据;
若缓存数据库中不存在所述目标数据对应的缓存数据,则获取所述目标数据对应的参数组合,所述参数组合为在所述缓存数据库中调取所述目标数据对应的缓存数据以及从数据库中调取所述目标数据的索引;
将所述参数组合以及目标缓存查询时间添加到所述参数组合列表中,所述目标缓存查询时间为针对所述目标数据的查询时间,所述参数组合列表包括多个参数组合和多个缓存查询时间;
基于所述多个缓存查询时间,对所述多个参数组合各自对应的缓存数据进行更新。
2.根据权利要求1所述的方法,其特征在于,所述基于所述多个缓存查询时间,对所述多个参数组合各自对应的缓存数据进行更新,包括:
确定所述多个缓存查询时间中与所述目标缓存查询时间最近的M个第一参数组合;
对所述M个第一参数组合分别对应的缓存数据进行更新。
3.根据权利要求2所述的方法,其特征在于,所述参数组合列表中还包括多个缓存更新时间,所述多个缓存更新时间与所述多个缓存查询时间之间具有对应关系;
所述对所述M个第一参数组合分别对应的缓存数据进行更新,包括:
若所述M个第一参数组合中存在所述缓存查询时间相同的N个第二参数组合,则根据所述N个第二参数组合各自的缓存更新时间,将所述N个第二参数组合中的Q个第二参数组合从所述M个第一参数组合中剔除;
对剔除后剩余的M-Q个第一参数组合分别对应的缓存数据进行更新;
其中,M、N、Q均为正整数,M≥N,N≥2,Q≥1。
4.根据权利要求1所述的方法,其特征在于,所述参数组合列表中还包括多个缓存更新时间,所述多个缓存更新时间与所述多个缓存查询时间之间具有对应关系;
所述方法还包括:
确定所述多个参数组合分别对应的缓存更新时间;
对所述多个参数组合中,所述缓存更新时间满足预设时间条件的参数组合对应的缓存数据进行更新。
5.根据权利要求3所述的方法,其特征在于,所述对剔除后剩余的M-Q个第一参数组合分别对应的缓存数据进行更新,包括:
在数据库中查找所述M-Q个第一参数组合分别对应的目标数据;
利用所述目标数据,在缓存线程池中对所述M-Q个第一参数组合对应的缓存数据分别进行更新。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若缓存数据库中存在所述目标数据对应的缓存数据,则更新所述目标数据对应的目标缓存查询时间;
基于更新后的所述目标数据对应的目标缓存查询时间,对所述多个参数组合对应的缓存数据进行更新。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
按照预设时间间隔遍历所述参数组合列表,确定缓存更新时间在预设时间范围内的参数组合;
将所述缓存更新时间在所述预设时间范围内的参数组合对应的缓存数据进行更新。
8.一种数据更新装置,其特征在于,包括:
确定模块,用于响应于针对目标数据的查询请求,确定缓存数据库中是否存在所述目标数据对应的缓存数据;
获取模块,用于若缓存数据库中不存在所述目标数据对应的缓存数据,则获取所述目标数据对应的参数组合,所述参数组合为在所述缓存数据库中调取所述目标数据对应的缓存数据以及从数据库中调取所述目标数据的索引;
添加模块,用于将所述参数组合以及目标缓存查询时间添加到所述参数组合列表中,所述目标缓存查询时间为针对所述目标数据的查询时间,所述参数组合列表包括多个参数组合和多个缓存查询时间;
更新模块,用于基于所述多个缓存查询时间,对所述多个参数组合各自对应的缓存数据进行更新。
9.一种电子设备,其特征在于,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
所述处理器,用于执行上述权利要求1至7任一项所述的数据更新方法。
10.一种计算机可读存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序用于执行上述权利要求1至7任一项所述的数据更新方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310004532.1A CN116126876A (zh) | 2023-01-03 | 2023-01-03 | 数据更新方法及装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310004532.1A CN116126876A (zh) | 2023-01-03 | 2023-01-03 | 数据更新方法及装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116126876A true CN116126876A (zh) | 2023-05-16 |
Family
ID=86304119
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310004532.1A Pending CN116126876A (zh) | 2023-01-03 | 2023-01-03 | 数据更新方法及装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116126876A (zh) |
-
2023
- 2023-01-03 CN CN202310004532.1A patent/CN116126876A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8566788B2 (en) | Predictive prefetching to improve parallelization of data retrieval subtasks | |
US9195698B2 (en) | Selectively retrieving search results in accordance with different logical relationships | |
US10210256B2 (en) | Anchor tag indexing in a web crawler system | |
US20110173177A1 (en) | Sightful cache: efficient invalidation for search engine caching | |
RU2380748C2 (ru) | Регистрация и извлечение информации об изменении таблицы базы данных, которая может использоваться для признания недействительными элементов кэша | |
CN106557578B (zh) | 历史数据查询方法及系统 | |
CN1202257A (zh) | 用于定位万维网页以及计算机网络文件的系统和方法 | |
US20140365425A1 (en) | Statistical applications in oltp environment | |
US9148329B1 (en) | Resource constraints for request processing | |
US7634517B1 (en) | System and method for dynamically updating a document repository without interrupting concurrent querying | |
US20220138188A1 (en) | Generic scheduling | |
CN109766318B (zh) | 文件读取方法及装置 | |
CN112866339B (zh) | 数据传输方法、装置、计算机设备和存储介质 | |
US9317432B2 (en) | Methods and systems for consistently replicating data | |
CN117033831A (zh) | 一种客户端缓存方法、装置及其介质 | |
CN116126876A (zh) | 数据更新方法及装置、电子设备及存储介质 | |
US11947490B2 (en) | Index generation and use with indeterminate ingestion patterns | |
Naylor et al. | Method of efficiently choosing a cache entry for castout | |
JP2006185167A (ja) | ファイル検索方法、ファイル検索装置、および、ファイル検索プログラム | |
JP5143917B2 (ja) | キャッシュサーバ、キャッシュ管理方法およびキャッシュ管理プログラム | |
US10515012B2 (en) | Relationship based cache resource naming and evaluation | |
CN117520377A (zh) | ElasticSearch深度分页查询方法、装置和电子设备 | |
CN115599827A (zh) | 一种报表查询方法、装置、设备及存储介质 | |
CN117171473A (zh) | 网页请求的方法、装置、电子设备及存储介质 | |
CN113641711A (zh) | 一种针对saas租户的数据缓存处理方法、装置及介质 |
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 |