CN110221989A - 一种数据缓存方法、装置、存储介质及计算机设备 - Google Patents
一种数据缓存方法、装置、存储介质及计算机设备 Download PDFInfo
- Publication number
- CN110221989A CN110221989A CN201910536922.7A CN201910536922A CN110221989A CN 110221989 A CN110221989 A CN 110221989A CN 201910536922 A CN201910536922 A CN 201910536922A CN 110221989 A CN110221989 A CN 110221989A
- Authority
- CN
- China
- Prior art keywords
- data
- time interval
- unit
- caching
- 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 46
- 230000003139 buffering effect Effects 0.000 claims description 83
- 230000000694 effects Effects 0.000 claims description 67
- 238000004590 computer program Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 9
- 230000008569 process Effects 0.000 description 8
- 230000006870 function Effects 0.000 description 5
- 230000008901 benefit Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0877—Cache access modes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
- G06F2212/1021—Hit rate improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1041—Resource optimization
- G06F2212/1044—Space efficiency improvement
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明实施例提供的一种数据缓存方法、装置、存储介质及计算机设备,可以获得在第一时间区间内对数据进行缓存的缓存效果参数,其中,在第一时间区间内对数据进行缓存的缓存单位为第一单位;根据第一单位和在第一时间区间内对数据进行缓存的缓存效果参数,确定在第二时间区间内对数据进行缓存的缓存单位;在第二时间区间内根据确定的在第二时间区间内对数据进行缓存的缓存单位对数据进行缓存,其中,第一时间区间在第二时间区间之前。本发明通过调整缓存单位的方式,克服了因为使用固定缓存单位对数据进行缓存造成的数据请求在缓存中的缓存命中率和/或缓存利用率低的现有技术问题,进而达到了提升数据请求的数据请求方获得数据的效率。
Description
技术领域
本发明涉及数据传输领域,尤其涉及一种数据缓存方法、装置、存储介质及计算机设备。
背景技术
如今,随着互联网服务的多样化和实时化,数据请求方可以向数据提供方发送数据请求,数据提供方可以根据该数据请求,从磁盘中获得该数据请求所请求的数据返回给发送该数据请求的数据请求方。
为了让后续请求该数据的其他数据请求方能快速获得该数据,数据提供方会对磁盘中的该数据按照固定的缓存单位进行缓存,以便快速返回至发送该数据请求的数据请求方。
然而,在按照固定的缓存单位对磁盘中的该数据进行缓存时,根据实际情况的不同,会出现因为缓存单位过大或过小,使数据请求在缓存中的缓存命中率和/或缓存利用率过低的问题,从而降低了数据请求的数据请求方获得数据的效率。
发明内容
鉴于上述问题,本发明提供一种克服上述问题或者至少部分地解决上述问题的一种数据缓存方法、装置、存储介质及计算机设备,技术方案如下:
一种数据缓存方法,包括:
获得在第一时间区间内对数据进行缓存的缓存效果参数,其中,在所述第一时间区间内对数据进行缓存的缓存单位为第一单位;
根据所述第一单位和在所述第一时间区间内对数据进行缓存的缓存效果参数,确定在第二时间区间内对数据进行缓存的缓存单位;
在所述第二时间区间内根据确定的所述在第二时间区间内对数据进行缓存的缓存单位对数据进行缓存,其中,所述第一时间区间在所述第二时间区间之前。
可选的,所述缓存效果参数包括:缓存命中率和/或缓存利用率。
可选的,在所述缓存效果参数包括缓存利用率时,所述获得在第一时间区间内对数据进行缓存的缓存效果参数,包括:
根据所述第一时间区间内发送给数据请求方的数据中非重复数据的数据量和所述第一时间区间内从磁盘读取的数据的数据量,获得在第一时间区间内对数据进行缓存的缓存利用率;
或者,
根据所述第一时间区间内发送给数据请求方的数据的数据量和所述第一时间区间内从磁盘读取的数据的数据量,获得在第一时间区间内对数据进行缓存的缓存利用率。
可选的,在所述缓存效果参数包括:缓存命中率和缓存利用率时,所述根据所述第一单位和在所述第一时间区间内对数据进行缓存的缓存效果参数,确定在第二时间区间内对数据进行缓存的缓存单位,包括:
当在所述第一时间区间内对数据进行缓存的缓存命中率大于第一阈值且在所述第一时间区间内对数据进行缓存的缓存利用率小于第二阈值时,将小于所述第一单位的第二单位确定为在第二时间区间内对数据进行缓存的缓存单位;当在所述第一时间区间内对数据进行缓存的缓存命中率小于第三阈值且在所述第一时间区间内对数据进行缓存的缓存利用率大于第四阈值时,将大于所述第一单位的第三单位确定为在所述第二时间区间内对数据进行缓存的缓存单位。
可选的,所述将小于所述第一单位的第二单位确定为在第二时间区间内对数据进行缓存的缓存单位,包括:
将所述第一单位减去预设的缓存数据量后获得第二单位,将所述第二单位确定为在第二时间区间内对数据进行缓存的缓存单位;
所述将大于所述第一单位的第三单位确定为在所述第二时间区间内对数据进行缓存的缓存单位,包括:
将所述第一单位加上预设的缓存数据量后获得第三单位,将所述第三单位确定为在所述第二时间区间内对数据进行缓存的缓存单位。
可选的,所述在所述第二时间区间内根据确定的所述在第二时间区间内对数据进行缓存的缓存单位对数据进行缓存,包括:
在所述第二时间区间内,根据数据请求从磁盘中获得确定的所述在第二时间区间内对数据进行缓存的缓存单位的数据并放入缓存中。
一种数据缓存装置,包括缓存效果参数获得单元、缓存单位确定单元和数据缓存单元,
所述缓存效果参数获得单元,用于获得在第一时间区间内对数据进行缓存的缓存效果参数,其中,在所述第一时间区间内对数据进行缓存的缓存单位为第一单位;
所述缓存单位确定单元,用于根据所述第一单位和在所述第一时间区间内对数据进行缓存的缓存效果参数,确定在第二时间区间内对数据进行缓存的缓存单位;
所述数据缓存单元,用于在所述第二时间区间内根据确定的所述在第二时间区间内对数据进行缓存的缓存单位对数据进行缓存,其中,所述第一时间区间在所述第二时间区间之前。
可选的,所述缓存效果参数包括:缓存命中率和缓存利用率,所述缓存单位确定单元具体用于:
当在所述第一时间区间内对数据进行缓存的缓存命中率大于第一阈值且在所述第一时间区间内对数据进行缓存的缓存利用率小于第二阈值时,将小于所述第一单位的第二单位确定为在第二时间区间内对数据进行缓存的缓存单位;当在所述第一时间区间内对数据进行缓存的缓存命中率小于第三阈值且在所述第一时间区间内对数据进行缓存的缓存利用率大于第四阈值时,将大于所述第一单位的第三单位确定为在所述第二时间区间内对数据进行缓存的缓存单位。
一种存储介质,所述存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器加载并执行时,实现如上述的任一种数据缓存方法。
一种计算机设备,包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的程序,所述处理器执行程序时至少实现以下步骤:
获得在第一时间区间内对数据进行缓存的缓存效果参数,其中,在所述第一时间区间内对数据进行缓存的缓存单位为第一单位;
根据所述第一单位和在所述第一时间区间内对数据进行缓存的缓存效果参数,确定在第二时间区间内对数据进行缓存的缓存单位;
在所述第二时间区间内根据确定的所述在第二时间区间内对数据进行缓存的缓存单位对数据进行缓存,其中,所述第一时间区间在所述第二时间区间之前。
借由上述技术方案,本发明提供的一种数据缓存方法、装置、存储介质及计算机设备,可以获得在第一时间区间内对数据进行缓存的缓存效果参数,其中,在所述第一时间区间内对数据进行缓存的缓存单位为第一单位;根据所述第一单位和在所述第一时间区间内对数据进行缓存的缓存效果参数,确定在第二时间区间内对数据进行缓存的缓存单位;在所述第二时间区间内根据确定的所述在第二时间区间内对数据进行缓存的缓存单位对数据进行缓存,其中,所述第一时间区间在所述第二时间区间之前。本发明通过调整缓存单位的方式,克服了因为使用固定缓存单位对数据进行缓存造成的数据请求在缓存中的缓存命中率和/或缓存利用率低的现有技术问题,进而达到了提升数据请求的数据请求方获得数据的效率。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了本发明实施例提供的一种数据缓存方法的流程示意图;
图2示出了本发明实施例提供的另一种数据缓存方法的流程示意图;
图3示出了本发明实施例提供的一种数据缓存装置的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
如图1所示,本发明实施例提供的一种数据缓存方法,可以包括:
S100、获得在第一时间区间内对数据进行缓存的缓存效果参数,其中,在所述第一时间区间内对数据进行缓存的缓存单位为第一单位;
图1所示方法可以应用于数据提供方的电子设备。数据提供方的电子设备可以为服务器,数据请求方的电子设备可以为客户端设备,这样,数据请求方的电子设备与数据提供方的电子设备形成客户端/服务器(C/S,Client/Server)架构。可选的,数据请求方的电子设备与数据提供方的电子设备也可以对等网络(P2P,Peer to Peer)架构中的电子设备。可以理解的是,对等网络架构中的每个电子设备既可以作为数据提供方,也可以作为数据请求方。具体的,数据请求方的电子设备可以通过P2P网络模块与数据提供方的电子设备通信连接。P2P网络模块可以将数据请求方的电子设备发送的数据请求拆分为多个数据请求,拆分后得到的每个数据请求所请求的数据的数据量可以均为1个数据片。当然,在本发明其他实施例中,数据请求方和数据提供方可以使用同一电子设备,例如:电脑的磁盘中存储着数据,电脑的处理器常需要读取这些数据,为了提高读取速度,电脑中常设置缓存来暂时存储从磁盘中读取的数据,当处理器再次读取同样的数据时,可以先从缓存中查找,如果查找到,则不必再从磁盘中读取。当然,图1所示方法也可以应用于数据请求方的电子设备,数据请求方的电子设备中可以设置有缓存,当从数据提供方的电子设备中获得所请求的数据后,可以将该数据放入缓存中,当需要再次请求该数据时,数据提供方的电子设备可以先在本地的缓存中查找,如果查找到,则无需再向数据提供方的电子设备发送数据请求。可见,本发明图1所示方法可以应用于各种形式的电子设备,本发明在此不做限定。当然,由于数据请求由P2P网络模块发送给数据提供方的电子设备,因此本发明可以将P2P网络模块确定为数据请求方并将读取的数据的部分或全部返回给P2P网络模块,由P2P网络模块再对接收的数据进行处理。
本实施例可以根据时间区间来管理进行数据缓存时的缓存单位。缓存单位为每次放入缓存的数据的数据量。可选的,同一时间区间的缓存单位与磁盘读取单位可以相同。可选的,缓存单位可以为某个数据量,如128KB。在本发明一可选实施例中,可以对各时间区间的缓存单位设置一个缓存单位的取值范围,如:16KB至2048KB。当然,本发明实施例还可以对缓存单位调整的最小间隔进行设置,例如将该最小间隔调整为16KB。具体的,每16KB的数据可以为一个数据片,每2048KB的数据可以为一个数据块。可知每个数据块中包括128个数据片。在某应用场景下,在进行缓存时的缓存单位可以为N个片,其中,N为自然数且小于128。这样,每次放入缓存的数据最小为N个片。
为方便理解,下面举例说明:设数据提供方的电子设备接收到P2P网络模块发送的一个数据请求,该数据请求请求了一个数据片。设当前时间区间的缓存单位及磁盘读取单位均为3个片,则数据提供方的电子设备可以从磁盘中读取数据请求所请求的一个数据片及该请求的数据片之后的两个数据片,然后将这三个数据片一起放入缓存中。同时,数据提供方的电子设备还可以将数据请求所请求的数据片返回给P2P网络模块。
具体的,本发明可以将时间划分为多个时间区间,例如从某年某月某日的某个时刻开始,每五秒为一个时间区间。本发明实施例可以分别统计每个时间区间内的缓存效果参数。
其中,所述缓存效果参数可以包括:缓存命中率和/或缓存利用率。
缓存命中率是数据请求方请求的数据在缓存中命中的概率。当数据提供方接收到数据请求方发送的数据请求后,数据提供方会首先在缓存查找数据请求方请求的数据,如果查找到,则数据请求方请求的数据在缓存中命中。在某时间区间内的缓存命中率的计算方法可以包括:将该时间区间内在缓存中命中的数据请求的数量除以该时间区间内的数据请求的总数。
缓存利用率是衡量缓存中的数据被使用的情况的参数,下面提供两种可选的缓存利用率的获得方式。
方式一,在所述缓存效果参数包括缓存利用率时,获得在第一时间区间内对数据进行缓存的缓存效果参数,可以包括:
根据所述第一时间区间内发送给数据请求方的数据的数据量和所述第一时间区间内从磁盘读取的数据的数据量,获得在第一时间区间内对数据进行缓存的缓存利用率。
方式二,在所述缓存效果参数包括缓存利用率时,获得在第一时间区间内对数据进行缓存的缓存效果参数,可以包括:
根据所述第一时间区间内发送给数据请求方的数据中非重复数据的数据量和所述第一时间区间内从磁盘读取的数据的数据量,获得在第一时间区间内对数据进行缓存的缓存利用率。
由于从磁盘读取的数据会放入缓存中,因此缓存利用率是根据对数据进行缓存的数据的数据量和发送给数据请求方的数据或非重复数据的数据量确定的。具体的,缓存利用率可以是发送给数据请求方的数据或非重复数据的数据量除以对数据进行缓存的数据的数据量的值。例如,假设在第一时间区间内接收到请求1至请求5这五个数据请求,这五个数据请求请求的数据片分别为:数据片A、数据片A、数据片B、数据片B、数据片C。如果数据片A、数据片B、数据片C是连续的三个数据片,且缓存单位为2个数据片,则在第一时间区间内将从磁盘读取并缓存数据片A、数据片B、数据片C和数据片D(数据片D为数据片C之后的数据片)。发送给上述五个请求的数据请求方的数据分别为:数据片A、数据片A、数据片B、数据片B、数据片C,可知发送给数据请求方的数据的数据量为五个数据片。发送给上述五个请求的数据请求方的数据中的非重复数据为:数据片A、数据片B和数据片C,该非重复数据的数据量为三个数据片。因此发送给数据请求方的去重后的数据为三个数据片。由于从磁盘读取的数据的数据量为四个数据片,因此根据方式一计算得到的缓存利用率为:5/4=1.25,根据方式二计算得到的缓存利用率为3/4=0.75。
S200、根据所述第一单位和在所述第一时间区间内对数据进行缓存的缓存效果参数,确定在第二时间区间内对数据进行缓存的缓存单位;
可选的,在所述缓存效果参数包括:缓存命中率和缓存利用率时,所述根据所述第一单位和在所述第一时间区间内对数据进行缓存的缓存效果参数,确定在第二时间区间内对数据进行缓存的缓存单位,可以包括:
当在所述第一时间区间内对数据进行缓存的缓存命中率大于第一阈值且在所述第一时间区间内对数据进行缓存的缓存利用率小于第二阈值时,将小于所述第一单位的第二单位确定为在第二时间区间内对数据进行缓存的缓存单位;当在所述第一时间区间内对数据进行缓存的缓存命中率小于第三阈值且在所述第一时间区间内对数据进行缓存的缓存利用率大于第四阈值时,将大于所述第一单位的第三单位确定为在所述第二时间区间内对数据进行缓存的缓存单位。
具体的,对数据进行缓存的缓存命中率和缓存利用率都不能过低,当缓存命中率和缓存利用率中某一个过低时,都会造成数据请求方获得数据的效率降低。当在所述第一时间区间内对数据进行缓存的缓存命中率大于第一阈值且在所述第一时间区间内对数据进行缓存的缓存利用率小于第二阈值时,说明在第一时间区间内对数据进行缓存的缓存利用率过低,而第一时间区间内对数据进行缓存的缓存命中率具有调整空间,通过将小于所述第一单位的第二单位确定为在第二时间区间内对数据进行缓存的缓存单位,提升第二时间区间内对数据进行缓存的缓存利用率。例如,当第一时间区间的缓存单位为8个数据片时,第一时间区间内的缓存命中率大于第一阈值0.3且第一时间区间内的缓存利用率小于0.5,则将第二时间区间的缓存单位确定为7个数据片。
当在所述第一时间区间内对数据进行缓存的缓存命中率小于第三阈值且在所述第一时间区间内对数据进行缓存的缓存利用率大于第四阈值时,说明在第一时间区间内对数据进行缓存的缓存命中率过低,而第一时间区间内对数据进行缓存的缓存利用率具有调整空间,通过将大于所述第一单位的第三单位确定为在所述第二时间区间内对数据进行缓存的缓存单位,提升第二时间区间内对数据进行缓存的缓存命中率。例如,当第一时间区间的缓存单位为8个数据片时,第一时间区间内的缓存命中率小于第三阈值0.5且第一时间区间内的缓存利用率大于0.7,则将第二时间区间的缓存单位确定为9个数据片。
通过第一时间区间内对数据进行缓存的缓存命中率和缓存利用率与设定的阈值对比,可以判断第一时间区间对数据进行缓存的缓存命中率和/或缓存利用率是否过低,如果过低,则调整第二时间区间的缓存单位以使第二时间区间对数据进行缓存的缓存命中率和/或缓存利用率不会过低,提升对数据进行缓存的效率。
可选的,所述第三阈值大于所述第一阈值,所述第四阈值大于所述第二阈值。
可选的,所述第二阈值大于所述第一阈值,所述第四阈值大于所述第三阈值。
其中,第一阈值可以为0.3;第二阈值可以为0.5;第三阈值可以为0.5;第四阈值可以为0.7。
第一阈值和第三阈值的取值范围可以根据缓存命中率确定,当在第一时间区间中接收到的全部数据请求中,重复数据请求的数量为0,则第一时间区间的缓存命中率为0。当在第一时间区间中接收到的全部数据请求中,全部是重复数据请求,则第一时间区间的缓存命中率为1。因此本发明实施例可以确定第一阈值和第三阈值的取值范围为0至1。
第二阈值和第四阈值的取值范围可以根据缓存利用率确定,当第一时间区间内未接收到数据请求时,第一时间区间的缓存利用率为0。若第一时间区间发送至数据请求方的数据量等于第一时间区间对数据进行缓存的数据量,则第一时间区间的缓存利用率为1。可以理解的是,第一时间区间发送至数据请求方的数据量可以大于第一时间区间对数据进行缓存的数据量,因此第一时间区间的缓存利用率可以大于1。综上,本发明实施例可以确定第二阈值和第四阈值的取值范围为不小于0。
可选的,在将小于所述第一单位的第二单位确定为在第二时间区间内对数据进行缓存的缓存单位的过程,可以包括:
将所述第一单位减去预设的缓存数据量后获得第二单位,将所述第二单位确定为在第二时间区间内对数据进行缓存的缓存单位;
具体的,预设的缓存数据量可以是1个数据片,也可以是其他的数值,预设的缓存数据量可以根据实际应用需要进行设置。为了便于理解,此处进行举例说明:当第一单位为8个数据片且预设的缓存数据量为1个数据片时,若在所述第一时间区间内对数据进行缓存的缓存命中率大于第一阈值且在所述第一时间区间内对数据进行缓存的缓存利用率小于第二阈值,则将第二时间区间的缓存单位确定为7个数据片。
可选的,在将大于所述第一单位的第三单位确定为在所述第二时间区间内对数据进行缓存的缓存单位的过程,可以包括:
将所述第一单位加上预设的缓存数据量后获得第三单位,将所述第三单位确定为在所述第二时间区间内对数据进行缓存的缓存单位。
具体的,预设的缓存数据量可以是1个数据片,也可以是其他的数值,预设的缓存数据量可以根据实际应用需要进行设置。为了便于理解,此处进行举例说明:当第一单位为8个数据片且预设的缓存数据量为1个数据片时,若在所述第一时间区间内对数据进行缓存的缓存命中率小于第三阈值且在所述第一时间区间内对数据进行缓存的缓存利用率大于第四阈值,则将第二时间区间的缓存单位确定为9个数据片。
S300、在所述第二时间区间内根据确定的所述在第二时间区间内对数据进行缓存的缓存单位对数据进行缓存,其中,所述第一时间区间在所述第二时间区间之前。
具体的,本发明可以改进缓存结构,将之前只能每次缓存固定数据量的数据改为每次缓存的数据量可以不同。相应的,本发明还可以改进内存池结构,使其可提供可变大小的缓存空间。
在本发明一可选实施例中,第一时间区间可以是与第二时间区间相邻的前一个时间区间,例如,第二时间区间为开始对数据进行缓存的第15至20秒,则第一时间区间为开始对数据进行缓存的第10至14秒。根据与第二时间区间相邻的第一时间区间的对数据进行缓存的缓存命中率和缓存利用率情况和第一单位,调整第二时间区间的对数据进行缓存的缓存单位,可以及时调整对数据进行缓存的缓存命中率和/或缓存利用率过低的情况,提升对数据进行缓存的效率。
基于图1所示的方法,如图2所示,步骤S300可以具体包括:
S310、在所述第二时间区间内,根据数据请求从磁盘中获得确定的所述在第二时间区间内对数据进行缓存的缓存单位的数据并放入缓存中。
具体的,第二时间区间内对数据进行缓存的数据可以从磁盘中获得,并按照第二时间区间的缓存单位,从该磁盘中将该对数据进行缓存的数据放入缓存中。例如,第二时间区间内需要对数据进行缓存的数据存储在磁盘中,且该数据的数据量为30MB,若第二时间区间内的缓存单位为2MB,则将该数据量为30MB的数据拆分为15份数据,每份为2MB,并依次将该15份数据放入缓存中。
当然,在本发明其他实施例中,当根据数据请求确定的需从磁盘读取的数据量为缓存单位的数据中的部分数据已经在缓存中存在时,可以仅从磁盘中读取该缓存单位的数据中除已在缓存中存在的数据外的其他数据,并将所述其他数据放入缓存中。为方便理解,下面举例说明:假设数据请求请求了数据片A。设当前时间区间的缓存单位及磁盘读取单位均为3个数据片,则数据提供方的电子设备根据数据请求可以确定需从磁盘中读取的数据为:数据片A及数据片A之后的两个数据片(设数据片A之后的两个数据片为数据片B和数据片C)。假设数据片C已在缓存中存在,此时本发明只需要从磁盘中读取数据片A和数据片B并数据片A和数据片B放入缓存即可。可见,通过这种方法可以有效减少读取的数据量,避免了重复读取。
本发明实施例提供的一种数据缓存方法,可以获得在第一时间区间内对数据进行缓存的缓存效果参数,其中,在所述第一时间区间内对数据进行缓存的缓存单位为第一单位;根据所述第一单位和在所述第一时间区间内对数据进行缓存的缓存效果参数,确定在第二时间区间内对数据进行缓存的缓存单位;在所述第二时间区间内根据确定的所述在第二时间区间内对数据进行缓存的缓存单位对数据进行缓存,其中,所述第一时间区间在所述第二时间区间之前。本发明通过调整缓存单位的方式,克服了因为使用固定缓存单位对数据进行缓存造成的数据请求在缓存中的缓存命中率和/或缓存利用率低的现有技术问题,进而达到了提升数据请求的数据请求方获得数据的效率。
与上述方法实施例相对应的,本发明还提供一种数据缓存装置。
如图3所示,本发明实施例提供的一种数据缓存装置,可以包括缓存效果参数获得单元100、缓存单位确定单元200和数据缓存单元300,
所述缓存效果参数获得单元100,用于获得在第一时间区间内对数据进行缓存的缓存效果参数,其中,在所述第一时间区间内对数据进行缓存的缓存单位为第一单位;
图3所示的装置可以应用于数据提供方的电子设备。数据提供方的电子设备可以为服务器,数据请求方的电子设备可以为客户端设备,这样,数据请求方的电子设备与数据提供方的电子设备形成客户端/服务器(C/S,Client/Server)架构。可选的,数据请求方的电子设备与数据提供方的电子设备也可以对等网络(P2P,Peer to Peer)架构中的电子设备。可以理解的是,对等网络架构中的每个电子设备既可以作为数据提供方,也可以作为数据请求方。具体的,数据请求方的电子设备可以通过P2P网络模块与数据提供方的电子设备通信连接。P2P网络模块可以将数据请求方的电子设备发送的数据请求拆分为多个数据请求,拆分后得到的每个数据请求所请求的数据的数据量可以均为1个数据片。当然,在本发明其他实施例中,数据请求方和数据提供方可以使用同一电子设备,例如:电脑的磁盘中存储着数据,电脑的处理器常需要读取这些数据,为了提高读取速度,电脑中常设置缓存来暂时存储从磁盘中读取的数据,当处理器再次读取同样的数据时,可以先从缓存中查找,如果查找到,则不必再从磁盘中读取。当然,图3所示装置也可以应用于数据请求方的电子设备,数据请求方的电子设备中可以设置有缓存,当从数据提供方的电子设备中获得所请求的数据后,可以将该数据放入缓存中,当需要再次请求该数据时,数据提供方的电子设备可以先在本地的缓存中查找,如果查找到,则无需再向数据提供方的电子设备发送数据请求。可见,本发明图3所示装置可以应用于各种形式的电子设备,本发明在此不做限定。当然,由于数据请求由P2P网络模块发送给数据提供方的电子设备,因此本发明可以将P2P网络模块确定为数据请求方并将读取的数据的部分或全部返回给P2P网络模块,由P2P网络模块再对接收的数据进行处理。
本实施例可以根据时间区间来管理进行数据缓存时的缓存单位。缓存单位为每次放入缓存的数据的数据量。可选的,同一时间区间的缓存单位与磁盘读取单位可以相同。可选的,缓存单位可以为某个数据量,如128KB。在本发明一可选实施例中,可以对各时间区间的缓存单位设置一个缓存单位的取值范围,如:16KB至2048KB。当然,本发明实施例还可以对缓存单位调整的最小间隔进行设置,例如将该最小间隔调整为16KB。具体的,每16KB的数据可以为一个数据片,每2048KB的数据可以为一个数据块。可知每个数据块中包括128个数据片。在某应用场景下,在进行缓存时的缓存单位可以为N个片,其中,N为自然数且小于128。这样,每次放入缓存的数据最小为N个片。
为方便理解,下面举例说明:设数据提供方的电子设备接收到P2P网络模块发送的一个数据请求,该数据请求请求了一个数据片。设当前时间区间的缓存单位及磁盘读取单位均为3个片,则数据提供方的电子设备可以从磁盘中读取数据请求所请求的一个数据片及该请求的数据片之后的两个数据片,然后将这三个数据片一起放入缓存中。同时,数据提供方的电子设备还可以将数据请求所请求的数据片返回给P2P网络模块。
具体的,本发明可以将时间划分为多个时间区间,例如从某年某月某日的某个时刻开始,每五秒为一个时间区间。本发明实施例可以分别统计每个时间区间内的缓存效果参数。
其中,所述缓存效果参数可以包括:缓存命中率和/或缓存利用率。
缓存命中率是数据请求方请求的数据在缓存中命中的概率。当数据提供方接收到数据请求方发送的数据请求后,数据提供方会首先在缓存查找数据请求方请求的数据,如果查找到,则数据请求方请求的数据在缓存中命中。在某时间区间内的缓存命中率的计算方法可以包括:将该时间区间内在缓存中命中的数据请求的数量除以该时间区间内的数据请求的总数。
缓存利用率是衡量缓存中的数据被使用的情况的参数,下面提供两种可选的缓存利用率的获得方式。
方式一,在所述缓存效果参数包括缓存利用率时,缓存效果参数获得单元100可以具体用于根据所述第一时间区间内发送给数据请求方的数据的数据量和所述第一时间区间内从磁盘读取的数据的数据量,获得在第一时间区间内对数据进行缓存的缓存利用率。
方式二,在所述缓存效果参数包括缓存利用率时,缓存效果参数获得单元100可以具体用于根据所述第一时间区间内发送给数据请求方的数据中非重复数据的数据量和所述第一时间区间内从磁盘读取的数据的数据量,获得在第一时间区间内对数据进行缓存的缓存利用率。
由于从磁盘读取的数据会放入缓存中,因此缓存利用率是根据对数据进行缓存的数据的数据量和发送给数据请求方的数据或非重复数据的数据量确定的。具体的,缓存利用率可以是发送给数据请求方的数据或非重复数据的数据量除以对数据进行缓存的数据的数据量的值。例如,假设在第一时间区间内接收到请求1至请求5这五个数据请求,这五个数据请求请求的数据片分别为:数据片A、数据片A、数据片B、数据片B、数据片C。如果数据片A、数据片B、数据片C是连续的三个数据片,且缓存单位为2个数据片,则在第一时间区间内将从磁盘读取并缓存数据片A、数据片B、数据片C和数据片D(数据片D为数据片C之后的数据片)。发送给上述五个请求的数据请求方的数据分别为:数据片A、数据片A、数据片B、数据片B、数据片C,可知发送给数据请求方的数据的数据量为五个数据片。发送给上述五个请求的数据请求方的数据中的非重复数据为:数据片A、数据片B和数据片C,该非重复数据的数据量为三个数据片。因此发送给数据请求方的去重后的数据为三个数据片。由于从磁盘读取的数据的数据量为四个数据片,因此根据方式一计算得到的缓存利用率为:5/4=1.25,根据方式二计算得到的缓存利用率为3/4=0.75。
所述缓存单位确定单元200,用于根据所述第一单位和在所述第一时间区间内对数据进行缓存的缓存效果参数,确定在第二时间区间内对数据进行缓存的缓存单位;
可选的,在所述缓存效果参数包括:缓存命中率和缓存利用率时,缓存单位确定单元200可以具体用于:当在所述第一时间区间内对数据进行缓存的缓存命中率大于第一阈值且在所述第一时间区间内对数据进行缓存的缓存利用率小于第二阈值时,将小于所述第一单位的第二单位确定为在第二时间区间内对数据进行缓存的缓存单位;当在所述第一时间区间内对数据进行缓存的缓存命中率小于第三阈值且在所述第一时间区间内对数据进行缓存的缓存利用率大于第四阈值时,将大于所述第一单位的第三单位确定为在所述第二时间区间内对数据进行缓存的缓存单位。
具体的,对数据进行缓存的缓存命中率和缓存利用率都不能过低,当缓存命中率和缓存利用率中某一个过低时,都会造成数据请求方获得数据的效率降低。当在所述第一时间区间内对数据进行缓存的缓存命中率大于第一阈值且在所述第一时间区间内对数据进行缓存的缓存利用率小于第二阈值时,说明在第一时间区间内对数据进行缓存的缓存利用率过低,而第一时间区间内对数据进行缓存的缓存命中率具有调整空间,通过将小于所述第一单位的第二单位确定为在第二时间区间内对数据进行缓存的缓存单位,提升第二时间区间内对数据进行缓存的缓存利用率。例如,当第一时间区间的缓存单位为8个数据片时,第一时间区间内的缓存命中率大于第一阈值0.3且第一时间区间内的缓存利用率小于0.5,则将第二时间区间的缓存单位确定为7个数据片。
当在所述第一时间区间内对数据进行缓存的缓存命中率小于第三阈值且在所述第一时间区间内对数据进行缓存的缓存利用率大于第四阈值时,说明在第一时间区间内对数据进行缓存的缓存命中率过低,而第一时间区间内对数据进行缓存的缓存利用率具有调整空间,通过将大于所述第一单位的第三单位确定为在所述第二时间区间内对数据进行缓存的缓存单位,提升第二时间区间内对数据进行缓存的缓存命中率。例如,当第一时间区间的缓存单位为8个数据片时,第一时间区间内的缓存命中率小于第三阈值0.5且第一时间区间内的缓存利用率大于0.7,则将第二时间区间的缓存单位确定为9个数据片。
通过第一时间区间内对数据进行缓存的缓存命中率和缓存利用率与设定的阈值对比,可以判断第一时间区间对数据进行缓存的缓存命中率和/或缓存利用率是否过低,如果过低,则调整第二时间区间的缓存单位以使第二时间区间对数据进行缓存的缓存命中率和/或缓存利用率不会过低,提升对数据进行缓存的效率。
可选的,所述第三阈值大于所述第一阈值,所述第四阈值大于所述第二阈值。
可选的,所述第二阈值大于所述第一阈值,所述第四阈值大于所述第三阈值。
其中,第一阈值可以为0.3;第二阈值可以为0.5;第三阈值可以为0.5;第四阈值可以为0.7。
第一阈值和第三阈值的取值范围可以根据缓存命中率确定,当在第一时间区间中接收到的全部数据请求中,重复数据请求的数量为0,则第一时间区间的缓存命中率为0。当在第一时间区间中接收到的全部数据请求中,全部是重复数据请求,则第一时间区间的缓存命中率为1。因此本发明实施例可以确定第一阈值和第三阈值的取值范围为0至1。
第二阈值和第四阈值的取值范围可以根据缓存利用率确定,当第一时间区间内未接收到数据请求时,第一时间区间的缓存利用率为0。若第一时间区间发送至数据请求方的数据量等于第一时间区间对数据进行缓存的数据量,则第一时间区间的缓存利用率为1。可以理解的是,第一时间区间发送至数据请求方的数据量可以大于第一时间区间对数据进行缓存的数据量,因此第一时间区间的缓存利用率可以大于1。综上,本发明实施例可以确定第二阈值和第四阈值的取值范围为不小于0。
可选的,缓存单位确定单元200可以将所述第一单位减去预设的缓存数据量后获得第二单位,将所述第二单位确定为在第二时间区间内对数据进行缓存的缓存单位。
具体的,预设的缓存数据量可以是1个数据片,也可以是其他的数值,预设的缓存数据量可以根据实际应用需要进行设置。为了便于理解,此处进行举例说明:当第一单位为8个数据片且预设的缓存数据量为1个数据片时,若在所述第一时间区间内对数据进行缓存的缓存命中率大于第一阈值且在所述第一时间区间内对数据进行缓存的缓存利用率小于第二阈值,则将第二时间区间的缓存单位确定为7个数据片。
可选的,缓存单位确定单元200可以将所述第一单位加上预设的缓存数据量后获得第三单位,将所述第三单位确定为在所述第二时间区间内对数据进行缓存的缓存单位。
具体的,预设的缓存数据量可以是1个数据片,也可以是其他的数值,预设的缓存数据量可以根据实际应用需要进行设置。为了便于理解,此处进行举例说明:当第一单位为8个数据片且预设的缓存数据量为1个数据片时,若在所述第一时间区间内对数据进行缓存的缓存命中率小于第三阈值且在所述第一时间区间内对数据进行缓存的缓存利用率大于第四阈值,则将第二时间区间的缓存单位确定为9个数据片。
所述数据缓存单元300,用于在所述第二时间区间内根据确定的所述在第二时间区间内对数据进行缓存的缓存单位对数据进行缓存,其中,所述第一时间区间在所述第二时间区间之前。
具体的,本发明可以改进缓存结构,将之前只能每次缓存固定数据量的数据改为每次缓存的数据量可以不同。相应的,本发明还可以改进内存池结构,使其可提供可变大小的缓存空间。
在本发明一可选实施例中,第一时间区间可以是与第二时间区间相邻的前一个时间区间,例如,第二时间区间为开始对数据进行缓存的第15至20秒,则第一时间区间为开始对数据进行缓存的第10至14秒。根据与第二时间区间相邻的第一时间区间的对数据进行缓存的缓存命中率和缓存利用率情况和第一单位,调整第二时间区间的对数据进行缓存的缓存单位,可以及时调整对数据进行缓存的缓存命中率和/或缓存利用率过低的情况,提升对数据进行缓存的效率。
可选的,所述数据缓存单元300可以具体用于在所述第二时间区间内,根据数据请求从磁盘中获得确定的所述在第二时间区间内对数据进行缓存的缓存单位的数据并放入缓存中。
具体的,第二时间区间内对数据进行缓存的数据可以从磁盘中获得,并按照第二时间区间的缓存单位,从该磁盘中将该对数据进行缓存的数据放入缓存中。例如,第二时间区间内需要对数据进行缓存的数据存储在磁盘中,且该数据的数据量为30MB,若第二时间区间内的缓存单位为2MB,则将该数据量为30MB的数据拆分为15份数据,每份为2MB,并依次将该15份数据放入缓存中。
当然,在本发明其他实施例中,当根据数据请求确定的需从磁盘读取的数据量为缓存单位的数据中的部分数据已经在缓存中存在时,可以仅从磁盘中读取该缓存单位的数据中除已在缓存中存在的数据外的其他数据,并将所述其他数据放入缓存中。为方便理解,下面举例说明:假设数据请求请求了数据片A。设当前时间区间的缓存单位及磁盘读取单位均为3个数据片,则数据提供方的电子设备根据数据请求可以确定需从磁盘中读取的数据为:数据片A及数据片A之后的两个数据片(设数据片A之后的两个数据片为数据片B和数据片C)。假设数据片C已在缓存中存在,此时本发明只需要从磁盘中读取数据片A和数据片B并数据片A和数据片B放入缓存即可。可见,通过这种方法可以有效减少读取的数据量,避免了重复读取。
本发明实施例提供的一种数据缓存装置,可以获得在第一时间区间内对数据进行缓存的缓存效果参数,其中,在所述第一时间区间内对数据进行缓存的缓存单位为第一单位;根据所述第一单位和在所述第一时间区间内对数据进行缓存的缓存效果参数,确定在第二时间区间内对数据进行缓存的缓存单位;在所述第二时间区间内根据确定的所述在第二时间区间内对数据进行缓存的缓存单位对数据进行缓存,其中,所述第一时间区间在所述第二时间区间之前。本发明通过调整缓存单位的方式,克服了因为使用固定缓存单位对数据进行缓存造成的数据请求在缓存中的缓存命中率和/或缓存利用率低的现有技术问题,进而达到了提升数据请求的数据请求方获得数据的效率。
所述数据缓存装置包括处理器和存储器,上述缓存效果参数获得单元100、缓存单位确定单元200和数据缓存单元300等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来提升数据请求的数据请求方获得数据的效率。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。
本发明实施例提供了一种存储介质,其上存储有程序,该程序被处理器执行时实现所述数据缓存方法。
本发明实施例提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行所述数据缓存方法。
本发明实施例提供了一种设备,设备包括处理器、存储器及存储在存储器上并可在处理器上运行的程序,处理器执行程序时实现以下步骤:
获得在第一时间区间内对数据进行缓存的缓存效果参数,其中,在所述第一时间区间内对数据进行缓存的缓存单位为第一单位;
根据所述第一单位和在所述第一时间区间内对数据进行缓存的缓存效果参数,确定在第二时间区间内对数据进行缓存的缓存单位;
在所述第二时间区间内根据确定的所述在第二时间区间内对数据进行缓存的缓存单位对数据进行缓存,其中,所述第一时间区间在所述第二时间区间之前。
可选的,所述缓存效果参数包括:缓存命中率和/或缓存利用率。
可选的,在所述缓存效果参数包括缓存利用率时,所述获得在第一时间区间内对数据进行缓存的缓存效果参数,包括:
根据所述第一时间区间内发送给数据请求方的数据中非重复数据的数据量和所述第一时间区间内从磁盘读取的数据的数据量,获得在第一时间区间内对数据进行缓存的缓存利用率;
或者,
根据所述第一时间区间内发送给数据请求方的数据的数据量和所述第一时间区间内从磁盘读取的数据的数据量,获得在第一时间区间内对数据进行缓存的缓存利用率。
可选的,在所述缓存效果参数包括:缓存命中率和缓存利用率时,所述根据所述第一单位和在所述第一时间区间内对数据进行缓存的缓存效果参数,确定在第二时间区间内对数据进行缓存的缓存单位,包括:
当在所述第一时间区间内对数据进行缓存的缓存命中率大于第一阈值且在所述第一时间区间内对数据进行缓存的缓存利用率小于第二阈值时,将小于所述第一单位的第二单位确定为在第二时间区间内对数据进行缓存的缓存单位;当在所述第一时间区间内对数据进行缓存的缓存命中率小于第三阈值且在所述第一时间区间内对数据进行缓存的缓存利用率大于第四阈值时,将大于所述第一单位的第三单位确定为在所述第二时间区间内对数据进行缓存的缓存单位。
可选的,所述将小于所述第一单位的第二单位确定为在第二时间区间内对数据进行缓存的缓存单位,包括:
将所述第一单位减去预设的缓存数据量后获得第二单位,将所述第二单位确定为在第二时间区间内对数据进行缓存的缓存单位;
所述将大于所述第一单位的第三单位确定为在所述第二时间区间内对数据进行缓存的缓存单位,包括:
将所述第一单位加上预设的缓存数据量后获得第三单位,将所述第三单位确定为在所述第二时间区间内对数据进行缓存的缓存单位。
可选的,所述在所述第二时间区间内根据确定的所述在第二时间区间内对数据进行缓存的缓存单位对数据进行缓存,包括:
在所述第二时间区间内,根据数据请求从磁盘中获得确定的所述在第二时间区间内对数据进行缓存的缓存单位的数据并放入缓存中。
本文中的设备可以是服务器、PC、PAD、手机等。
本申请还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序:
获得在第一时间区间内对数据进行缓存的缓存效果参数,其中,在所述第一时间区间内对数据进行缓存的缓存单位为第一单位;
根据所述第一单位和在所述第一时间区间内对数据进行缓存的缓存效果参数,确定在第二时间区间内对数据进行缓存的缓存单位;
在所述第二时间区间内根据确定的所述在第二时间区间内对数据进行缓存的缓存单位对数据进行缓存,其中,所述第一时间区间在所述第二时间区间之前。
可选的,所述缓存效果参数包括:缓存命中率和/或缓存利用率。
可选的,在所述缓存效果参数包括缓存利用率时,所述获得在第一时间区间内对数据进行缓存的缓存效果参数,包括:
根据所述第一时间区间内发送给数据请求方的数据中非重复数据的数据量和所述第一时间区间内从磁盘读取的数据的数据量,获得在第一时间区间内对数据进行缓存的缓存利用率;
或者,
根据所述第一时间区间内发送给数据请求方的数据的数据量和所述第一时间区间内从磁盘读取的数据的数据量,获得在第一时间区间内对数据进行缓存的缓存利用率。
可选的,在所述缓存效果参数包括:缓存命中率和缓存利用率时,所述根据所述第一单位和在所述第一时间区间内对数据进行缓存的缓存效果参数,确定在第二时间区间内对数据进行缓存的缓存单位,包括:
当在所述第一时间区间内对数据进行缓存的缓存命中率大于第一阈值且在所述第一时间区间内对数据进行缓存的缓存利用率小于第二阈值时,将小于所述第一单位的第二单位确定为在第二时间区间内对数据进行缓存的缓存单位;当在所述第一时间区间内对数据进行缓存的缓存命中率小于第三阈值且在所述第一时间区间内对数据进行缓存的缓存利用率大于第四阈值时,将大于所述第一单位的第三单位确定为在所述第二时间区间内对数据进行缓存的缓存单位。
可选的,所述将小于所述第一单位的第二单位确定为在第二时间区间内对数据进行缓存的缓存单位,包括:
将所述第一单位减去预设的缓存数据量后获得第二单位,将所述第二单位确定为在第二时间区间内对数据进行缓存的缓存单位;
所述将大于所述第一单位的第三单位确定为在所述第二时间区间内对数据进行缓存的缓存单位,包括:
将所述第一单位加上预设的缓存数据量后获得第三单位,将所述第三单位确定为在所述第二时间区间内对数据进行缓存的缓存单位。
可选的,所述在所述第二时间区间内根据确定的所述在第二时间区间内对数据进行缓存的缓存单位对数据进行缓存,包括:
在所述第二时间区间内,根据数据请求从磁盘中获得确定的所述在第二时间区间内对数据进行缓存的缓存单位的数据并放入缓存中。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (10)
1.一种数据缓存方法,其特征在于,包括:
获得在第一时间区间内对数据进行缓存的缓存效果参数,其中,在所述第一时间区间内对数据进行缓存的缓存单位为第一单位;
根据所述第一单位和在所述第一时间区间内对数据进行缓存的缓存效果参数,确定在第二时间区间内对数据进行缓存的缓存单位;
在所述第二时间区间内根据确定的所述在第二时间区间内对数据进行缓存的缓存单位对数据进行缓存,其中,所述第一时间区间在所述第二时间区间之前。
2.根据权利要求1所述的方法,其特征在于,所述缓存效果参数包括:缓存命中率和/或缓存利用率。
3.根据权利要求2所述的方法,其特征在于,在所述缓存效果参数包括缓存利用率时,所述获得在第一时间区间内对数据进行缓存的缓存效果参数,包括:
根据所述第一时间区间内发送给数据请求方的数据中非重复数据的数据量和所述第一时间区间内从磁盘读取的数据的数据量,获得在第一时间区间内对数据进行缓存的缓存利用率;
或者,
根据所述第一时间区间内发送给数据请求方的数据的数据量和所述第一时间区间内从磁盘读取的数据的数据量,获得在第一时间区间内对数据进行缓存的缓存利用率。
4.根据权利要求2所述的方法,其特征在于,在所述缓存效果参数包括:缓存命中率和缓存利用率时,所述根据所述第一单位和在所述第一时间区间内对数据进行缓存的缓存效果参数,确定在第二时间区间内对数据进行缓存的缓存单位,包括:
当在所述第一时间区间内对数据进行缓存的缓存命中率大于第一阈值且在所述第一时间区间内对数据进行缓存的缓存利用率小于第二阈值时,将小于所述第一单位的第二单位确定为在第二时间区间内对数据进行缓存的缓存单位;当在所述第一时间区间内对数据进行缓存的缓存命中率小于第三阈值且在所述第一时间区间内对数据进行缓存的缓存利用率大于第四阈值时,将大于所述第一单位的第三单位确定为在所述第二时间区间内对数据进行缓存的缓存单位。
5.根据权利要求4所述的方法,其特征在于,所述将小于所述第一单位的第二单位确定为在第二时间区间内对数据进行缓存的缓存单位,包括:
将所述第一单位减去预设的缓存数据量后获得第二单位,将所述第二单位确定为在第二时间区间内对数据进行缓存的缓存单位;
所述将大于所述第一单位的第三单位确定为在所述第二时间区间内对数据进行缓存的缓存单位,包括:
将所述第一单位加上预设的缓存数据量后获得第三单位,将所述第三单位确定为在所述第二时间区间内对数据进行缓存的缓存单位。
6.根据权利要求1所述的方法,其特征在于,所述在所述第二时间区间内根据确定的所述在第二时间区间内对数据进行缓存的缓存单位对数据进行缓存,包括:
在所述第二时间区间内,根据数据请求从磁盘中获得确定的所述在第二时间区间内对数据进行缓存的缓存单位的数据并放入缓存中。
7.一种数据缓存装置,其特征在于,包括:缓存效果参数获得单元、缓存单位确定单元和数据缓存单元,
所述缓存效果参数获得单元,用于获得在第一时间区间内对数据进行缓存的缓存效果参数,其中,在所述第一时间区间内对数据进行缓存的缓存单位为第一单位;
所述缓存单位确定单元,用于根据所述第一单位和在所述第一时间区间内对数据进行缓存的缓存效果参数,确定在第二时间区间内对数据进行缓存的缓存单位;
所述数据缓存单元,用于在所述第二时间区间内根据确定的所述在第二时间区间内对数据进行缓存的缓存单位对数据进行缓存,其中,所述第一时间区间在所述第二时间区间之前。
8.根据权利要求7所述的装置,其特征在于,所述缓存效果参数包括:缓存命中率和缓存利用率,所述缓存单位确定单元具体用于:
当在所述第一时间区间内对数据进行缓存的缓存命中率大于第一阈值且在所述第一时间区间内对数据进行缓存的缓存利用率小于第二阈值时,将小于所述第一单位的第二单位确定为在第二时间区间内对数据进行缓存的缓存单位;当在所述第一时间区间内对数据进行缓存的缓存命中率小于第三阈值且在所述第一时间区间内对数据进行缓存的缓存利用率大于第四阈值时,将大于所述第一单位的第三单位确定为在所述第二时间区间内对数据进行缓存的缓存单位。
9.一种存储介质,其特征在于,所述存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器加载并执行时,实现如上权利要求1至6任一项所述的数据缓存方法。
10.一种计算机设备,其特征在于,包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的程序,所述处理器执行程序时至少实现以下步骤:
获得在第一时间区间内对数据进行缓存的缓存效果参数,其中,在所述第一时间区间内对数据进行缓存的缓存单位为第一单位;
根据所述第一单位和在所述第一时间区间内对数据进行缓存的缓存效果参数,确定在第二时间区间内对数据进行缓存的缓存单位;
在所述第二时间区间内根据确定的所述在第二时间区间内对数据进行缓存的缓存单位对数据进行缓存,其中,所述第一时间区间在所述第二时间区间之前。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910536922.7A CN110221989A (zh) | 2019-06-20 | 2019-06-20 | 一种数据缓存方法、装置、存储介质及计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910536922.7A CN110221989A (zh) | 2019-06-20 | 2019-06-20 | 一种数据缓存方法、装置、存储介质及计算机设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110221989A true CN110221989A (zh) | 2019-09-10 |
Family
ID=67813966
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910536922.7A Pending CN110221989A (zh) | 2019-06-20 | 2019-06-20 | 一种数据缓存方法、装置、存储介质及计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110221989A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022057379A1 (zh) * | 2020-09-17 | 2022-03-24 | 上海哔哩哔哩科技有限公司 | 数据存储调整方法、装置及计算机设备 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1251668A (zh) * | 1997-12-30 | 2000-04-26 | Mcmz技术革新股份有限公司 | 计算机高速缓存分窗 |
CN103279429A (zh) * | 2013-05-24 | 2013-09-04 | 浪潮电子信息产业股份有限公司 | 一种应用感知的分布式全局共享缓存分区方法 |
CN103984644A (zh) * | 2014-05-07 | 2014-08-13 | 华为技术有限公司 | 一种数据管理方法及装置 |
CN104156323A (zh) * | 2014-08-07 | 2014-11-19 | 浪潮(北京)电子信息产业有限公司 | 一种高速缓冲存储器的数据块长度自适应读取方法及装置 |
CN107025223A (zh) * | 2016-01-29 | 2017-08-08 | 华为技术有限公司 | 一种面向多租户的缓冲区管理方法及服务器 |
CN107870875A (zh) * | 2017-08-09 | 2018-04-03 | 成都萌想科技有限责任公司 | 一种基于分布式内存可定制智能数据缓存方法 |
-
2019
- 2019-06-20 CN CN201910536922.7A patent/CN110221989A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1251668A (zh) * | 1997-12-30 | 2000-04-26 | Mcmz技术革新股份有限公司 | 计算机高速缓存分窗 |
CN103279429A (zh) * | 2013-05-24 | 2013-09-04 | 浪潮电子信息产业股份有限公司 | 一种应用感知的分布式全局共享缓存分区方法 |
CN103984644A (zh) * | 2014-05-07 | 2014-08-13 | 华为技术有限公司 | 一种数据管理方法及装置 |
CN104156323A (zh) * | 2014-08-07 | 2014-11-19 | 浪潮(北京)电子信息产业有限公司 | 一种高速缓冲存储器的数据块长度自适应读取方法及装置 |
CN107025223A (zh) * | 2016-01-29 | 2017-08-08 | 华为技术有限公司 | 一种面向多租户的缓冲区管理方法及服务器 |
CN107870875A (zh) * | 2017-08-09 | 2018-04-03 | 成都萌想科技有限责任公司 | 一种基于分布式内存可定制智能数据缓存方法 |
Non-Patent Citations (1)
Title |
---|
DOROTHY CADY: "《NetWare命令大全》", 31 January 1997 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022057379A1 (zh) * | 2020-09-17 | 2022-03-24 | 上海哔哩哔哩科技有限公司 | 数据存储调整方法、装置及计算机设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109240946B (zh) | 数据的多级缓存方法及终端设备 | |
US10846241B2 (en) | Score-based cache admission and eviction | |
CN109379395B (zh) | 一种接口数据缓存设置方法及终端设备 | |
CN106326309B (zh) | 一种数据查询方法和装置 | |
US8307164B2 (en) | Automatic determination of read-ahead amount | |
CN108073349B (zh) | 数据的传输方法及装置 | |
CN107197359B (zh) | 视频文件缓存方法及装置 | |
US20140067994A1 (en) | Reducing costs related to use of networks based on pricing heterogeneity | |
CN107959695B (zh) | 一种数据传输方法及装置 | |
JP7392168B2 (ja) | Cdnにおけるurlリフレッシュ方法、装置、機器及びcdnノード | |
CN110765086B (zh) | 一种小文件的目录读取方法、系统、电子设备及存储介质 | |
JP2017517781A (ja) | 帯域幅依存のファイル転送のための方法及びシステム | |
CN106657182B (zh) | 云端文件处理方法和装置 | |
US20220086097A1 (en) | Stream allocation using stream credits | |
US10558571B2 (en) | Second level database file cache for row instantiation | |
US11005776B2 (en) | Resource allocation using restore credits | |
CN110875938A (zh) | 一种区块链中信息的发送方法及装置 | |
CN109948056B (zh) | 一种推荐系统的评估方法及装置 | |
CN101247405A (zh) | 计算下载时间及资源下载的方法、系统及装置 | |
CN110221989A (zh) | 一种数据缓存方法、装置、存储介质及计算机设备 | |
KR102042431B1 (ko) | 클라우드 환경에서 웹 캐싱을 위한 메타 정보 저장 방법 및 이를 사용한 웹 서버 | |
CN114253456A (zh) | 一种缓存负载均衡方法和装置 | |
CN108628551B (zh) | 一种数据处理方法及装置 | |
CN110019362B (zh) | 一种访问数据库的方法及装置 | |
CN110825652B (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 |