一种基于被访问次数的数据缓存方法和装置

文档序号:1003494 发布日期:2020-10-23 浏览:29次 >En<

阅读说明:本技术 一种基于被访问次数的数据缓存方法和装置 (Data caching method and device based on accessed times ) 是由 邓智成 于 2020-06-29 设计创作,主要内容包括:本发明公开了一种基于被访问次数的数据缓存方法和装置,包括如下步骤:S1、获取每一个时间周期内,所有已缓存的数据的被访问次数;S2、对每个时间周期内的所有已缓存的数据,根据该数据的被访问次数将该数据划分至不同阶层;S3、根据该数据在当前时间周期的访问次数、上一时间周期内数据的被访问次数、当前时间周期内数据的被访问次数以及上一时间周期内数据的被访问次数,对数据的缓存时长进行延长或缩短操作。由于采用了上述技术方案,与现有技术相比,本发明根据数据的被访问次数来延长或缩短该数据的缓存时长,不仅可以保证服务器的可用性,还能提高不同数据条件下的缓存命中率。(The invention discloses a data caching method and device based on accessed times, which comprises the following steps: s1, acquiring the access times of all the cached data in each time period; s2, for all cached data in each time period, dividing the data into different hierarchies according to the number of times the data is accessed; and S3, according to the number of times of accessing the data in the current time period, the number of times of accessing the data in the previous time period, the number of times of accessing the data in the current time period and the number of times of accessing the data in the previous time period, prolonging or shortening the caching duration of the data. Due to the adoption of the technical scheme, compared with the prior art, the cache duration of the data is prolonged or shortened according to the access times of the data, the availability of the server can be ensured, and the cache hit rate under different data conditions can be improved.)

一种基于被访问次数的数据缓存方法和装置

技术领域

本发明涉及数据处理领域,具体涉及一种基于被访问次数的数据缓存方法和装置。

背景技术

传统的缓存技术,一般是设置固定缓存时长,当时长失效时根据相应的淘汰算法移除缓存条目,从而用有限的缓存大小尽量缓存最大的数据。

缓存:凡是位于速度相差较大的两种硬件/服务之间,用于协调两者数据传输速度差异的结构,均可称之为缓存。回原:缓存没有数据时要向原服务器取数据。命中率:终端用户访问加速节点时,如果该节点有缓存住了要被访问的数据时就叫做命中,如果没有的话需要回原服务器取,就是没有命中,命中率等于命中数/(命中数+没有命中数)。

传统的缓存策略一般分为三种:LRU、LFU和ARC。LRU:Least RecentlyUsed,最近最少使用算法,优先淘汰未使用时间最长的条目;LFU:LeastFrequently Used,最不经常使用算法,优先淘汰使用频率最低的条目;ARC:Adaptive Replacement Cache,自适应缓存替换算法,由2个LRU组成,第一个,也就是L1,包含的条目是最近只被使用过一次的,而第二个LRU,也就是L2,包含的是最近被使用过两次的条目,L1放的是新的对象,而L2放的是常用的对象。

现有的这些缓存策略的缺点在于:固定缓存时长一般较短例如1-10分钟,当回原数据的服务器出现问题时会导致本身服务器不可用;其次,所有缓存都使用固定缓存时长,没有考虑长时间/短时间的热点数据访问,使得命中率没有达到较高水平。

发明内容

为解决背景技术中现有缓存策略无法保障服务器的可用性以及缓存命中率低的问题,本发明提供了一种基于被访问次数的数据缓存方法,具体技术方案如下。

一种基于被访问次数的数据缓存方法,所述方法包括如下步骤:

S1、获取每一个时间周期内,所有已缓存的数据的被访问次数;

S2、对每个时间周期内的所有已缓存的数据,根据该数据的被访问次数将该数据划分至不同阶层;

S3、根据该数据在当前时间周期的访问次数、上一时间周期内数据的被访问次数、当前时间周期内数据的被访问次数以及上一时间周期内数据的被访问次数,对数据的缓存时长进行延长或缩短操作。

当前频次=(当前总读次数(cur_cnt)-前次总读次数(cnt))/(当前时间-前次更新时间)。通过计算当前频次,并跟前次频次(rate)进行比较,即可判断频次的上升或下降,以及处于哪个阶段,并按照逻辑对该数据的缓存时长进行延长或缩短,并把当前频次覆盖缓存公数据中rate值(以方便下次判断)。频次策略保证了短时间内出现的热点数据在回原服务器出问题时,在比较长的一段时间内(例如2-8小时)也能正常响应。例如12:00某明星宣布结婚,该视频流量会突然增长上来,根据频次策略可把该视频缓存续费起来。

优选地,所述步骤S2具体包括:若100≤被访问次数≤1000,则将该数据划分至第1阶层;若1000<被访问次数≤10000,则将该数据划分至第2阶层;若被访问次数>10000,则将该数据划分至第3阶层。传统的缓存策略是通过固定算法(例如LRU,LFU)来做淘汰,不一定适用所有项目,本策略通过设计三阶段方式,以及调整方式来找到最优的缓存策略。

优选地,所述步骤S3具体包括:若当前时间周期内数据的被访问次数≥上一时间周期内数据的被访问次数,且该数据在当前时间周期内的所在阶层≥1,则延长该数据的缓存时长;若当前时间周期内数据的被访问次数<上一时间周期内数据的被访问次数,且该数据在当前时间周期内的所在阶层<上一时间周期内的所在阶层,则缩短该数据的缓存时长。

优选地,所述步骤S3中缩短该数据的缓存时长指的是将该数据的缓存时长减半。传统的缓存策略是通过固定缓存时长失效机制,没有考虑短时间内的热点数据的访问方式,本策略设计阶段升级时延长缓存时长以及阶段降级缩短缓存时长,能有效缓存住短时间内的热点数据。

优选地,当数据的当前所在阶层为第1阶层时,每次延长缓存的时长为10分钟;当数据的当前所在阶层为第2阶层时,每次延长缓存的时长为30分钟;当数据的当前所在阶层为第3阶层时,每次延长缓存的时长为60分钟。本策略设计自动延长缓存时长机制,能有效长时间缓存住短时间内的热点数据。

优选地,当数据的当前所在阶层为第1阶层时,该数据缓存时长的下限为2分钟;当数据的当前所在阶层为第2阶层时,该数据缓存时长的下限为2分钟;当数据的当前所在阶层为第3阶层时,该数据缓存时长的下限为4分钟。本策略设计自动缩短缓存时长机制,能有效去除不必要的缓存数据,及时释放缓存空间。

优选地,当数据的当前所在阶层为第1阶层时,该数据缓存时长的上限为2小时;当数据的当前所在阶层为第2阶层时,该数据缓存时长的上限为4小时;当数据的当前所在阶层为第3阶层时,该数据缓存时长的上限为8小时。本策略设计缓存上限,防止缓存被无限缓存。

优选地,所述时间周期的取值范围为1-10分钟。

基于同一个发明构思,本发明还提供一种基于被访问次数的数据缓存装置。

获取单元,用于获取每一个时间周期内,所有已缓存的数据的被访问次数;

划分单元,用于对每个时间周期内的所有已缓存的数据,根据该数据的被访问次数将该数据划分至不同阶层;

执行单元,用于根据该数据在当前时间周期的访问次数、上一时间周期内数据的被访问次数、当前时间周期内数据的被访问次数以及上一时间周期内数据的被访问次数,对数据的缓存时长进行延长或缩短操作;

所述获取单元与所述划分单元连接,用于向所述划分单元发送数据的被访问次数;所述划分单元接收每个时间周期内的所有已缓存的数据的被访问次数,并根据被访问次数将数据划分至不同阶层;所述执行单元根据该数据在当前时间周期的访问次数、上一时间周期内数据的被访问次数、当前时间周期内数据的被访问次数以及上一时间周期内数据的被访问次数,对数据的缓存时长进行延长或缩短操作。

当前频次=(当前总读次数(cur_cnt)-前次总读次数(cnt))/(当前时间-前次更新时间)。通过计算当前频次,并跟前次频次(rate)进行比较,即可判断频次的上升或下降,以及处于哪个阶段,并按照逻辑对该数据的缓存时长进行延长或缩短,并把当前频次覆盖缓存公数据中rate值(以方便下次判断)。频次策略保证了短时间内出现的热点数据在回原服务器出问题时,在比较长的一段时间内(例如2-8小时)也能正常响应。例如12:00赵丽颖宣布结婚,该视频流量会突然增长上来,根据频次策略可把该视频缓存续费起来。

优选地,所述划分单元根据以下规则对每个时间周期内的所有已缓存的数据进行划分:若当前时间周期内数据的被访问次数≥上一时间周期内数据的被访问次数,且该数据在当前时间周期内的所在阶层≥1,则延长该数据的缓存时长;若当前时间周期内数据的被访问次数<上一时间周期内数据的被访问次数,且该数据在当前时间周期内的所在阶层<上一时间周期内的所在阶层,则缩短该数据的缓存时长。传统的缓存策略是通过固定算法(例如LRU,LFU)来做淘汰,不一定适用所有项目,本策略通过设计三阶段方式,以及调整方式来找到最优的缓存策略。

优选地,所述执行单元根据以下规则对数据的缓存时长进行延长或缩短操作:若当前时间周期内数据的被访问次数≥上一时间周期内数据的被访问次数,且该数据在当前时间周期内的所在阶层≥1,则延长该数据的缓存时长;若当前时间周期内数据的被访问次数<上一时间周期内数据的被访问次数,且该数据在当前时间周期内的所在阶层<上一时间周期内的所在阶层,则缩短该数据的缓存时长。传统的缓存策略是通过固定缓存时长失效机制,没有考虑短时间内的热点数据的访问方式,本策略设计阶段升级时延长缓存时长以及阶段降级缩短缓存时长,能有效缓存住短时间内的热点数据。

由于采用了以上技术方案,与现有技术相比较,本发明根据数据的被访问次数来延长或缩短该数据的缓存时长,不仅可以保证服务器的可用性,还能提高不同数据条件下的缓存命中率。

附图说明

图1为本发明实施例提供的一种基于被访问次数的数据缓存方法流程图;

图2为数据在各阶层时,缓存时长的延长/缩短机制的示意图;

图3为本发明实施例提供的一种基于被访问次数的数据缓存装置结构图。

具体实施方式

下面结合附图对本发明作进一步详细描述。

如图1所述,一种基于被访问次数的数据缓存方法,所述方法包括如下步骤:

S1、获取每分钟内,所有已缓存的数据的被访问次数;

S2、对每个时间周期内的所有已缓存的数据,根据该数据的被访问次数将该数据划分至不同阶层:若100≤被访问次数≤1000,则将该数据划分至第1阶层;若1000<被访问次数≤10000,则将该数据划分至第2阶层;若被访问次数>10000,则将该数据划分至第3阶层;

S3、若数据当前时间周期内的被访问次数≥上一时间周期内的被访问次数,且该数据在当前时间周期内的所在阶层≥1,则延长该数据的缓存时长;若数据当前时间周期内的被访问次数<上一时间周期内的被访问次数,且该数据在当前时间周期内的所在阶层<上一时间周期内的所在阶层,则将该数据的缓存时长减半。

如图2所示,当数据的当前所在阶层为第1阶层时,每次延长缓存的时长为10分钟;当数据的当前所在阶层为第2阶层时,每次延长缓存的时长为30分钟;当数据的当前所在阶层为第3阶层时,每次延长缓存的时长为60分钟。

当数据的当前所在阶层为第1阶层时,该数据缓存时长的下限为2分钟;当数据的当前所在阶层为第2阶层时,该数据缓存时长的下限为2分钟;当数据的当前所在阶层为第3阶层时,该数据缓存时长的下限为4分钟。

当数据的当前所在阶层为第1阶层时,该数据缓存时长的上限为2小时;当数据的当前所在阶层为第2阶层时,该数据缓存时长的上限为4小时;当数据的当前所在阶层为第3阶层时,该数据缓存时长的上限为8小时。

如图3所示,一种基于被访问次数的数据缓存装置,包括:

获取单元,用于获取每一个时间周期内,所有已缓存的数据的被访问次数;

划分单元,用于对每个时间周期内的所有已缓存的数据,根据该数据的被访问次数将该数据划分至不同阶层:当100≤被访问次数≤1000时,将该数据划分至第1阶层;当1000<被访问次数≤10000时,将该数据划分至第2阶层;当被访问次数>10000时,将该数据划分至第3阶层;

执行单元,用于根据该数据在当前时间周期的访问次数、上一时间周期内数据的被访问次数、当前时间周期内数据的被访问次数以及上一时间周期内数据的被访问次数,对数据的缓存时长进行延长或缩短操作:当数据当前时间周期内的被访问次数≥上一时间周期内的被访问次数,且该数据在当前时间周期内的所在阶层≥1时,延长该数据的缓存时长;当数据当前时间周期内的被访问次数<上一时间周期内的被访问次数,且该数据在当前时间周期内的所在阶层<上一时间周期内的所在阶层时,缩短该数据的缓存时长;

所述获取单元与所述划分单元连接,用于向所述划分单元发送数据的被访问次数;所述划分单元接收每个时间周期内的所有已缓存的数据的被访问次数,并根据被访问次数将数据划分至不同阶层;所述执行单元根据该数据在当前时间周期的访问次数、上一时间周期内数据的被访问次数、当前时间周期内数据的被访问次数以及上一时间周期内数据的被访问次数,对数据的缓存时长进行延长或缩短操作。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

8页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:多传感器数据同步、电子设备及存储介质

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类