CN112463813A - 数据缓存方法、装置、电子设备和存储介质 - Google Patents
数据缓存方法、装置、电子设备和存储介质 Download PDFInfo
- Publication number
- CN112463813A CN112463813A CN202011302841.XA CN202011302841A CN112463813A CN 112463813 A CN112463813 A CN 112463813A CN 202011302841 A CN202011302841 A CN 202011302841A CN 112463813 A CN112463813 A CN 112463813A
- Authority
- CN
- China
- Prior art keywords
- data
- key
- medium
- database
- cache
- 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
- 238000000034 method Methods 0.000 title claims abstract description 53
- 238000013467 fragmentation Methods 0.000 claims description 10
- 238000006062 fragmentation reaction Methods 0.000 claims description 10
- 238000004590 computer program Methods 0.000 claims description 5
- 230000000977 initiatory effect Effects 0.000 claims description 3
- 230000004044 response Effects 0.000 abstract description 20
- 230000008569 process Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 10
- 238000004891 communication Methods 0.000 description 5
- 230000015556 catabolic process Effects 0.000 description 4
- 238000006731 degradation reaction Methods 0.000 description 4
- 239000002184 metal Substances 0.000 description 4
- 239000000126 substance Substances 0.000 description 4
- 230000003139 buffering effect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
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
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供了一种数据缓存方法、装置、电子设备和存储介质。所述方法包括:若确定一关键字KEY对应的数据被用户访问过,且对应数据发生变更,则从数据库中查询所述KEY对应的数据;将从数据库中查询到的数据更新到主动缓存介质中,并根据所述KEY对应的访问次数和最后一次被访问的访问时间,以及当前时间确定所述KEY对应的数据在所述主动缓存介质中的缓存时间。该方法在数据量体量大的情况下,能够节省存储介质,并提高响应速度。
Description
技术领域
本发明涉及数据存储技术领域,特别涉及一种数据缓存方法、装置、电子设备和存储介质。
背景技术
现在处于一个高速的互联网时代,对于互联网的响应速度有着很高的要求。而服务提供方又受限于数据提供的响应效率。
为了保证用户可以及时查询信息,多数采用缓存来进行数据缓存,这样可以提高接口的响应速度,也可以避免突发高并发流量对数据库或第三方接口的访问压力。
现有通常采用的缓存方式为主动缓存和被动缓存,其中,主动缓存是不管是否有用户访问,都将数据进行缓存,但是这种缓存方式由于需要缓存所有数据,对一些体量大的访问,需要浪费很多的存储介质;被动缓存是在用户访问时,才进行缓存,但是这种缓存方式缓存时间短,导致可能还会多次访问数据库。
发明内容
有鉴于此,本申请提供一种数据缓存方法、装置、电子设备和存储介质,在数据量体量大的情况下,能够节省存储介质,并提高响应速度。
为解决上述技术问题,本申请的技术方案是这样实现的:
在一个实施例中,提供了一种数据缓存方法,所述方法包括:
若确定一关键字KEY对应的数据被用户访问过,且对应数据发生变更,则从数据库中查询所述KEY对应的数据;
将从数据库中查询到的数据更新到主动缓存介质中,并根据所述KEY对应的访问次数和最后一次被访问的访问时间,以及当前时间确定所述KEY对应的数据在所述主动缓存介质中的缓存时间。
其中,所述根据所述KEY对应的访问次数和最后一次被访问的访问时间,以及当前时间确定所述KEY对应的数据在所述主动缓存介质中的缓存时间,包括:
计算当前时间与最后一次被访问的访问时间的差值;
计算所述KEY对应的访问次数与所述差值的比值;
计算第一预设时间与所述比值的和,并确定为所述KEY对应的数据在所述主动缓存介质中的缓存时间。
其中,所述若确定一KEY对应的数据被用户访问过,且对应数据发生变更之后,所述从数据库中查询所述KEY对应的数据之前,所述方法进一步包括:通过生成并发起携带指定标识的数据请求触发从数据库中查询所述KEY对应的数据。
其中,所述方法进一步包括:
接收用户发送的数据请求;
根据所述数据请求携带的KEY到被动缓存介质查询对应的数据;
若从所述被动缓存介质中查询到对应的数据,则使用查询到的数据进行响应;
若从所述被动缓存介质中未查询到对应的数据,则从数据库中查询对应的数据进行响应,并存储到被动缓存介质中;
更新所述KEY对应的访问时间,以及所述key对应的访问次数。
其中,将从数据库中查询对应的数据存储到被动缓存介质中时,采用分片方式缓存。
其中,所述方法进一步包括:
在从被动缓存介质中查询数据时,若确定被动缓存介质故障,则从所述主动缓存介质中查询对应的数据;
若从所述主动缓存介质中查询到对应的数据,则使用所述数据进行响应;
若从所述主动缓存介质中未查询到对应的数据,则从数据库中查询数据并进行响应。
其中,所述若从所述被动缓存介质中未查询到对应的数据之后,所述从数据库中查询对应的数据进行响应之前,所述方法进一步包括:
若数据库连接故障,则从主动缓存介质中查询数据;
若从所述主动缓存介质中查询到对应的数据,则使用所述数据进行响应;
若从所述主动缓存介质中未查询到对应的数据,则响应未查找到对应的数据。
在另一个实施例中,提供了本申请实施例还提供一种数据缓存装置,所述装置包括:确定单元、查询单元、存储单元和计算单元;
所述确定单元,用于确定KEY对应的数据是否发生变更,所述KEY对应的数据是否被访问过;
所述查询单元,用于若所述确定单元确定一KEY对应的数据被用户访问过,且对应数据发生变更,则从数据库中查询所述KEY对应的数据;
所述存储单元,用于将所述查询单元从数据库中查询到的数据更新到主动缓存介质中;
所述计算单元,用于根据所述KEY对应的访问次数和最后一次被访问的访问时间,以及当前时间确定所述KEY对应的数据在所述主动缓存介质中的缓存时间。
其中,
所述计算单元,具体用于计算当前时间与最后一次被访问的访问时间的差值;计算所述KEY对应的访问次数与所述差值的比值;计算第一预设时间与所述比值的和,并确定为所述KEY对应的数据在所述主动缓存介质中的缓存时间。
其中,所述装置进一步包括:生成单元;
所述生成单元,用于所述确定单元若确定一KEY对应的数据被用户访问过,且对应数据发生变更,则生成携带指定标识的数据请求;触发所述查询单元从数据库中查询所述KEY对应的数据。
其中,所述装置进一步包括:接收单元和响应单元;
所述接收单元,用于接收用户发送的数据请求;
所述查询单元,进一步用于根据所述接收单元接收的所述数据请求携带的KEY到被动缓存介质查询对应的数据;若从所述被动缓存介质中未查询到对应的数据,则从数据库中查询对应的数据;
所述响应单元,若所述查询单元从所述被动缓存介质中查询到对应的数据,则使用查询到的数据进行响应;若所述查询单元从数据库中查询对应的数据,则使用查询到的数据进行响应;
所述存储单元,进一步用于将所述查询单元从数据库中查询到的数据存储到被动缓存介质中,并更新所述KEY对应的访问时间,以及所述key对应的访问次数。
其中,
所述存储单元,具体用于将从数据库中查询对应的数据存储到被动缓存介质中时,采用分片方式缓存。
其中,
所述确定单元,进一步用于确定所述被动缓存介质是否故障;
所述查询单元,进一步用于在从被动缓存介质中查询数据时,若所述确定单元确定被动缓存介质故障,则从所述主动缓存介质中查询对应的数据;若从所述主动缓存介质中未查询到对应的数据,则从数据库中查询数据;
所述响应单元,进一步用于若所述查询单元从所述主动缓存介质中查询到对应的数据,则使用从所述主动缓存介质中查询到的数据进行响应;若所述查询单元从数据库中查询到数据,则使用从所述数据库中查询到的数据进行响应。
其中,
所述确定单元,进一步用于确定数据库连接是否故障;
所述查询单元,进一步用于若从所述被动缓存介质中未查询到对应的数据,且所述确定单元确定数据库连接故障,则从主动缓存介质中查询数据;
所述响应单元,进一步用于若所述查询单元从所述主动缓存介质中查询到对应的数据,则使用所述数据进行响应;若从所述主动缓存介质中未查询到对应的数据,则响应未查找到对应的数据。
在另一个实施例中,提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如所述数据缓存方法的步骤。
在另一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现所述数据缓存方法的步骤。
由上面的技术方案可见,上述实施例中兼容主动缓存和被动缓存,在进行主动缓存时,缓存的数据与用户发送的数据请求有关,缓存时间与对应数据被访问次数有关,这样能够结合主动缓存与被动缓存的优点,这样的数据缓存方式通过合理的主动缓存的缓存时间,给缓存降级提供高可用的数据支撑;在数据量体量大的情况下,能够节省存储介质,并提高响应速度。
进一步地当被动缓存介质故障,或数据库连接故障时,可以通过主动缓存介质快速实现将数据请求切到降级缓存,既保护了数据库,又保证了对用户的快速响应。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例中被动数据缓存流程示意图;
图2为本申请实施例中主动缓存流程示意图;
图3为本申请实施例一中处理数据请求流程示意图;
图4为本申请实施例二中处理数据请求流程示意图;
图5为本申请实施例中应用于上述技术的装置结构示意图;
图6为本发明实施例提供的电子设备的实体结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含。例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其他步骤或单元。
下面以具体实施例对本发明的技术方案进行详细说明。下面几个具体实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。
本申请实施例中提供一种数据缓存方法,应用于数据缓存装置上。对于用户访问数据采用被动缓存的方式进行数据缓存,即优先从被动缓存介质中查询数据,若未查询到,则到数据库中查询;同时提供主动缓存,用于缓存被用户访问过且发生数据更新的数据,这样结合了主动缓存和被动缓存的优点,使得用户访问通过被动缓存实现,数据信息实时更新通过主动缓存实现,缓存降级通过主动缓存实现。该方案在数据量体量大的情况下,能够节省存储介质,并提高响应速度。
下面结合附图,详细说明数据缓存过程。
本申请实施例中进行被动缓存的实现具体如下:
参见图1,图1为本申请实施例中被动数据缓存流程示意图。具体步骤为:
步骤101,接收用户发送的数据请求。
步骤102,根据所述数据请求携带的KEY到被动缓存介质查询对应的数据。
在接收到数据请求后,优先到被动缓存介质中查询KEY对应的数据。
这里的KEY为数据请求对应的数据的唯一标识,如房源编号等。
步骤103,若查询到对应的数据,则使用查询到的数据进行响应。结束本流程。
步骤104,若未查询到对应的数据,则从数据库中查询对应的数据进行响应,并存储到被动缓存介质中。
在将查询到的数据缓存到被动缓存介质中时,将所述KEY和所述数据绑定缓存。
将从数据库中查询到的数据存储到被动缓存介质中时,所述方法进一步包括:
更新所述KEY对应的访问时间,以及所述key对应的访问次数。
更新所述KEY对应的访问时间,即将所述被动缓存介质中所述KEY对应的时间更新为最新访问的时间,从该时间开始缓存设定的缓存时间。
在被动缓存介质中缓存数据设定的缓存时间可以根据实际应用设置,设置的缓存时间到时,删除缓存的对应数据。
在缓存数据量比较大,如大于预设数据量时,可以采用分片方式缓存,即将缓存按照某种规则存储在多个存储介质上,如按照KEY对应的数据类型分片,或者按照KEY的不同进行分类,如房源编号等进行分片。
本申请实施例中进行主动缓存的实现具体如下:
参见图2,图2为本申请实施例中主动缓存流程示意图。具体步骤如下:
步骤201,若确定一KEY对应的数据被用户访问过,且对应数据发生变更,则从数据库中查询所述KEY对应的数据。
如KEY为房源编号,该房源编号对应的价格、格局有变化时,且该房源编号对应的数据被用户访问过时,触发主动到数据库中查询所述KEY对应的数据。
所述若确定一KEY对应的数据被用户访问过,且对应数据发生变更之后,所述从数据库中查询所述KEY对应的数据之前,所述方法进一步包括:通过生成并发起携带指定标识的数据请求触发从数据库中查询所述KEY对应的数据。
具体实现可以为:
根据用户发送的数据请求,构造主动请求,该主动请求与用户的请求区别可以是仅新增一个指定标识,用于区分系统主动发起的数据请求还是真实用户发起的数据请求,这个指定标识如可以是无缓存等,只要在实现过程中约定好即可。
将携带指定标识的数据请求也从接收用户发送的数据请求的接口接入,在接收到携带指定标识的数据请求时,确定携带指定标识的数据请求时,不再到被动缓存中查询数据,到数据库中查询数据。
步骤202,将从数据库中查询到的数据更新到主动缓存介质中,并根据所述KEY对应的访问次数和最后一次被访问的访问时间,以及当前时间确定所述KEY对应的数据在所述主动缓存介质中的缓存时间。
本步骤中根据所述KEY对应的访问次数和最后一次被访问的访问时间,以及当前时间确定所述KEY对应的数据在所述主动缓存介质中的缓存时间,包括:
计算当前时间与最后一次被访问的访问时间的差值;
计算所述KEY对应的访问次数与所述差值的比值;
计算第一预设时间与所述比值的和,并确定为所述KEY对应的数据在所述主动缓存介质中的缓存时间。
具体计算缓存时间T的公式如下:
T=Tbase+Q/(Tnow-T1);
其中,Tbase为第一预设时间,与被动缓存介质中的数据的缓存时间可以相同,也可以不同;Q为所述KEY对应的访问次数,Tnow为当前时间,T1为用户最后一次访问所述KEY对应的数据的访问时间,Tnow-T1的差值单位为秒,取值大于1。
本申请实施例中主动缓存介质中的数据与用户发送的数据请求有关,缓存时间与被动缓存的热度,即访问次数有关,能够结合主动缓存与被动缓存的优点,实现数据缓存。
通过同一个接口,使用指定标识控制,保证了从数据库查询的数据的一致性。下面给出在被动缓存介质故障,或与数据库连接故障的情况下,如何处理用户发送的数据请求。
实施例一
参见图3,图3为本申请实施例一中处理数据请求流程示意图。具体步骤为:
步骤301,接收用户发送的数据请求。
步骤302,根据所述数据请求携带的KEY到被动缓存介质查询对应的数据。
在接收到数据请求后,优先到被动缓存介质中查询KEY对应的数据。
这里的KEY为数据请求对应的数据的唯一标识,如房源编号等。
步骤303,若被动缓存介质故障,则从主动缓存介质中查询对应的数据。
这时如果被动缓存介质故障,则需要使用主动缓存介质来实现缓存降级,即到主动缓存介质中查询对应的数据。
步骤304,若从所述主动缓存介质中查询到对应的数据,则使用所述数据进行响应。结束本流程。
步骤305,若从所述主动缓存介质中未查询到对应的数据,则从数据库中查询数据并进行响应,结束本流程。
步骤306,若从所述被动缓存介质中查询到对应的数据,则使用查询到的数据进行响应。结束本流程。
该步骤的实现为被动缓存介质未故障,且存储有要查询的数据时,直接从被动缓存介质中获取数据进行响应。
步骤307,若未查询到对应的数据,则从数据库中查询对应的数据进行响应,并存储到被动缓存介质中。
该步骤的实现为被动缓存介质未故障,且未存储有要查询的数据时,则从数据库中获取数据进行响应。
在将查询到的数据缓存到被动缓存介质中时,将所述KEY和所述数据绑定缓存。
将从数据库中查询到的数据存储到被动缓存介质中时,所述方法进一步包括:
在所述被动缓存介质中更新所述KEY对应的访问时间,并更新所述key对应的访问次数。
在被动缓存介质中缓存数据的时间可以根据实际应用设置,设置的缓存时间到时,删除缓存的对应数据。
在缓存数据量比较大,如大于预设数据量时,可以采用分片方式缓存,即将缓存按照某种规则存储在多个存储介质上,如按照KEY对应的数据类型分片,或者按照KEY的不同进行分类,如房源编号等进行分片。
本实施例中在接收到用户发送的数据请求时,优先查询被动缓存介质进行数据响应,若被动缓存介质故障,则查询主动缓存介质进行数据响应。该方案综合考虑了被动缓存和主动缓存的优缺点,并通过合理的主动缓存的缓存时间,给缓存降级提供高可用的数据支撑。
实施例二
参见图4,图4为本申请实施例二中处理数据请求流程示意图。具体步骤为:
步骤401,接收用户发送的数据请求。
步骤402,根据所述数据请求携带的KEY到被动缓存介质查询对应的数据。
步骤403,若未从被动缓存介质查询到对应的数据,且数据库连接故障,则从主动缓存介质中查询数据。
如果与数据库连接故障,则不到数据库中查询,使用缓存降级方式到主动缓存介质中查询对应的数据。
步骤404,若从所述主动缓存介质中查询到对应的数据,则使用所述数据进行响应。结束本流程。
步骤405,若从所述主动缓存介质中未查询到对应的数据,则响应未查找到对应的数据。结束本流程。
步骤406,若从所述被动缓存介质中查询到对应的数据,则使用所述数据进行响应。结束本流程。
本申请实施例中在从被动存储介质中未查找到对应的数据,且与数据库连接故障,则到主动缓存介质中查询相关数据。该方案综合考虑了被动缓存和主动缓存的优缺点,既节省了缓存介质,又能及时响应用户,在数据库连接故障时,又能通过主动缓存很好实现缓存降级,提供高可用的数据支撑。
基于同样的发明构思,本申请实施例还提供一种数据缓存装置。参见图5,图5为本申请实施例中应用于上述技术的装置结构示意图。所述装置包括:确定单元501、查询单元502、存储单元503和计算单元504;
确定单元501,用于确定KEY对应的数据是否发生变更,所述KEY对应的数据是否被访问过;
查询单元502,用于若确定单元501确定一KEY对应的数据被用户访问过,且对应数据发生变更,则从数据库中查询所述KEY对应的数据;
存储单元503,用于将查询单元502从数据库中查询到的数据更新到主动缓存介质中;
计算单元504,用于根据所述KEY对应的访问次数和最后一次被访问的访问时间,以及当前时间确定所述KEY对应的数据在所述主动缓存介质中的缓存时间。
优选地,
计算单元504,具体用于计算当前时间与最后一次被访问的访问时间的差值;计算所述KEY对应的访问次数与所述差值的比值;计算第一预设时间与所述比值的和,并确定为所述KEY对应的数据在所述主动缓存介质中的缓存时间。
优选地,所述装置进一步包括:生成单元505;
生成单元505,用于确定单元501若确定一KEY对应的数据被用户访问过,且对应数据发生变更,则生成携带指定标识的数据请求;触发查询单元502从数据库中查询所述KEY对应的数据。
优选地,所述装置进一步包括:接收单元506和响应单元507;
接收单元506,用于接收用户发送的数据请求;
查询单元502,进一步用于根据接收单元506接收的所述数据请求携带的KEY到被动缓存介质查询对应的数据;若从所述被动缓存介质中未查询到对应的数据,则从数据库中查询对应的数据;
响应单元507,若查询单元502从所述被动缓存介质中查询到对应的数据,则使用查询到的数据进行响应;若查询单元502从数据库中查询对应的数据,则使用查询到的数据进行响应;
存储单元503,进一步用于将查询单元502从数据库中查询到的数据存储到被动缓存介质中,并更新所述KEY对应的访问时间,以及所述key对应的访问次数。
优选地,
存储单元503,具体用于将从数据库中查询对应的数据存储到被动缓存介质中时,采用分片方式缓存。
优选地,
确定单元501,进一步用于确定所述被动缓存介质是否故障;
查询单元502,进一步用于在从被动缓存介质中查询数据时,若确定单元501确定被动缓存介质故障,则从所述主动缓存介质中查询对应的数据;若从所述主动缓存介质中未查询到对应的数据,则从数据库中查询数据;
响应单元507,进一步用于若查询单元502从所述主动缓存介质中查询到对应的数据,则使用从所述主动缓存介质中查询到的数据进行响应;若查询单元502从数据库中查询到数据,则使用从所述数据库中查询到的数据进行响应。
优选地,
确定单元501,进一步用于确定数据库连接是否故障;
查询单元502,进一步用于若从所述被动缓存介质中未查询到对应的数据,且确定单元501确定数据库连接故障,则从主动缓存介质中查询数据;
响应单元507,进一步用于若查询单元502从所述主动缓存介质中查询到对应的数据,则使用所述数据进行响应;若从所述主动缓存介质中未查询到对应的数据,则响应未查找到对应的数据。
上述实施例的单元可以集成于一体,也可以分离部署;可以合并为一个单元,也可以进一步拆分成多个子单元。
在另一个实施例中,还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现所述数据缓存的步骤。
在另一个实施例中,还提供一种计算机可读存储介质,其上存储有计算机指令,所述指令被处理器执行时可实现所述数据缓存方法中的步骤。
图6为本发明实施例提供的电子设备的实体结构示意图。如图6所示,该电子设备可以包括:处理器(Processor)610、通信接口(Communications Interface)620、存储器(Memory)630和通信总线640,其中,处理器610,通信接口620,存储器630通过通信总线640完成相互间的通信。处理器610可以调用存储器630中的逻辑指令,以执行如下方法:
若确定一关键字KEY对应的数据被用户访问过,且对应数据发生变更,则从数据库中查询所述KEY对应的数据;
将从数据库中查询到的数据更新到主动缓存介质中,并根据所述KEY对应的访问次数和最后一次被访问的访问时间,以及当前时间确定所述KEY对应的数据在所述主动缓存介质中的缓存时间。
此外,上述的存储器630中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
Claims (10)
1.一种数据缓存方法,其特征在于,所述方法包括:
若确定一关键字KEY对应的数据被用户访问过,且对应数据发生变更,则从数据库中查询所述KEY对应的数据;
将从数据库中查询到的数据更新到主动缓存介质中,并根据所述KEY对应的访问次数和最后一次被访问的访问时间,以及当前时间确定所述KEY对应的数据在所述主动缓存介质中的缓存时间。
2.根据权利要求1所述的方法,其特征在于,所述根据所述KEY对应的访问次数和最后一次被访问的访问时间,以及当前时间确定所述KEY对应的数据在所述主动缓存介质中的缓存时间,包括:
计算当前时间与最后一次被访问的访问时间的差值;
计算所述KEY对应的访问次数与所述差值的比值;
计算第一预设时间与所述比值的和,并确定为所述KEY对应的数据在所述主动缓存介质中的缓存时间。
3.根据权利要求1所述的方法,其特征在于,所述若确定一KEY对应的数据被用户访问过,且对应数据发生变更之后,所述从数据库中查询所述KEY对应的数据之前,所述方法进一步包括:通过生成并发起携带指定标识的数据请求触发从数据库中查询所述KEY对应的数据。
4.根据权利要求1所述的方法,其特征在于,所述方法进一步包括:
接收用户发送的数据请求;
根据所述数据请求携带的KEY到被动缓存介质查询对应的数据;
若从所述被动缓存介质中查询到对应的数据,则使用查询到的数据进行响应;
若从所述被动缓存介质中未查询到对应的数据,则从数据库中查询对应的数据进行响应,并存储到被动缓存介质中;
更新所述KEY对应的访问时间,以及所述key对应的访问次数。
5.根据权利要求4所述的方法,其特征在于,将从数据库中查询对应的数据存储到被动缓存介质中时,采用分片方式缓存。
6.根据权利要求4所述的方法,其特征在于,所述方法进一步包括:
在从被动缓存介质中查询数据时,若确定被动缓存介质故障,则从所述主动缓存介质中查询对应的数据;
若从所述主动缓存介质中查询到对应的数据,则使用所述数据进行响应;
若从所述主动缓存介质中未查询到对应的数据,则从数据库中查询数据并进行响应。
7.根据权利要求4所述的方法,其特征在于,所述若从所述被动缓存介质中未查询到对应的数据之后,所述从数据库中查询对应的数据进行响应之前,所述方法进一步包括:
若数据库连接故障,则从主动缓存介质中查询数据;
若从所述主动缓存介质中查询到对应的数据,则使用所述数据进行响应;
若从所述主动缓存介质中未查询到对应的数据,则响应未查找到对应的数据。
8.一种数据缓存装置,其特征在于,所述装置包括:确定单元、查询单元、存储单元和计算单元;
所述确定单元,用于确定关键字KEY对应的数据是否发生变更,所述KEY对应的数据是否被访问过;
所述查询单元,用于若所述确定单元确定一KEY对应的数据被用户访问过,且对应数据发生变更,则从数据库中查询所述KEY对应的数据;
所述存储单元,用于将所述查询单元从数据库中查询到的数据更新到主动缓存介质中;
所述计算单元,用于根据所述KEY对应的访问次数和最后一次被访问的访问时间,以及当前时间确定所述KEY对应的数据在所述主动缓存介质中的缓存时间。
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1-7任一项所述的方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1-7任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011302841.XA CN112463813A (zh) | 2020-11-19 | 2020-11-19 | 数据缓存方法、装置、电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011302841.XA CN112463813A (zh) | 2020-11-19 | 2020-11-19 | 数据缓存方法、装置、电子设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112463813A true CN112463813A (zh) | 2021-03-09 |
Family
ID=74837876
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011302841.XA Pending CN112463813A (zh) | 2020-11-19 | 2020-11-19 | 数据缓存方法、装置、电子设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112463813A (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102682037A (zh) * | 2011-03-18 | 2012-09-19 | 阿里巴巴集团控股有限公司 | 一种数据获取方法、系统及装置 |
CN106484869A (zh) * | 2016-10-12 | 2017-03-08 | 北京集奥聚合科技有限公司 | 一种基于mysql binlog的分布式缓存方法及系统 |
CN106649145A (zh) * | 2016-12-15 | 2017-05-10 | Tcl集团股份有限公司 | 一种自适应更新缓存策略的方法及系统 |
CN109684358A (zh) * | 2017-10-18 | 2019-04-26 | 北京京东尚科信息技术有限公司 | 数据查询的方法和装置 |
CN111125247A (zh) * | 2019-12-06 | 2020-05-08 | 北京浪潮数据技术有限公司 | 一种redis客户端缓存方法、装置、设备及存储介质 |
-
2020
- 2020-11-19 CN CN202011302841.XA patent/CN112463813A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102682037A (zh) * | 2011-03-18 | 2012-09-19 | 阿里巴巴集团控股有限公司 | 一种数据获取方法、系统及装置 |
CN106484869A (zh) * | 2016-10-12 | 2017-03-08 | 北京集奥聚合科技有限公司 | 一种基于mysql binlog的分布式缓存方法及系统 |
CN106649145A (zh) * | 2016-12-15 | 2017-05-10 | Tcl集团股份有限公司 | 一种自适应更新缓存策略的方法及系统 |
CN109684358A (zh) * | 2017-10-18 | 2019-04-26 | 北京京东尚科信息技术有限公司 | 数据查询的方法和装置 |
CN111125247A (zh) * | 2019-12-06 | 2020-05-08 | 北京浪潮数据技术有限公司 | 一种redis客户端缓存方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108595207B (zh) | 一种灰度发布方法、规则引擎、系统、终端和存储介质 | |
CN106933871B (zh) | 短链接处理方法、装置及短链接服务器 | |
CN106933854B (zh) | 短链接处理方法、装置及服务器 | |
CN108924250B (zh) | 基于区块链的业务请求处理方法、装置和计算机设备 | |
CN103312733B (zh) | 信息处理方法和装置 | |
CN104346345B (zh) | 数据的存储方法及装置 | |
CN109992406B (zh) | 图片请求方法、响应图片请求的方法及客户端 | |
CN105516284B (zh) | 一种集群数据库分布式存储的方法和装置 | |
CN105653198A (zh) | 数据处理方法及装置 | |
CN104980478A (zh) | 内容分发网络中缓存共享方法、设备及系统 | |
CN111885216B (zh) | Dns查询方法、装置、设备和存储介质 | |
CN106598692A (zh) | 在逻辑卷中创建镜像文件、虚拟机启动方法及服务器 | |
CN110737857A (zh) | 一种后端分页加速方法、系统、终端及存储介质 | |
WO2011023122A1 (zh) | 业务路由方法、装置及系统 | |
CN106933817B (zh) | 一种基于b/s结构的内容查询方法及设备、系统 | |
CN105007317A (zh) | 一种分布式节点的数据处理方法及网关设备 | |
CN104618388A (zh) | 快速注册登录方法及对应的重置服务器、信息服务器 | |
CN105897754A (zh) | 一种数据处理系统、数据拉取方法以及客户端 | |
CN113900907B (zh) | 一种映射构建方法和系统 | |
CN107835095A (zh) | 一种日志的处理方法及装置 | |
CN108810092B (zh) | 网络访问方法和装置、电子设备、计算机可读存储介质 | |
CN107483565B (zh) | 一种服务后台识别方法、代理服务器及计算机存储介质 | |
CN112463813A (zh) | 数据缓存方法、装置、电子设备和存储介质 | |
JP2011510572A (ja) | フィンガープリント技術の実現方法、装置、及びシステム | |
CN106815334A (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210309 |