System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 数据缓存队列的生成方法、装置、计算机设备及存储介质制造方法及图纸_技高网

数据缓存队列的生成方法、装置、计算机设备及存储介质制造方法及图纸

技术编号:41408061 阅读:7 留言:0更新日期:2024-05-20 19:34
本公开涉及数据缓存队列的生成方法、装置、计算机设备及存储介质。该方法包括:获取待访问的新请求数据;确定新请求数据是否存在于新缓存队列内,若存在,则判定新请求数据是否存在于目标链表内;根据新请求数据存在于目标链表的情况,确定新请求数据在目标链表或其他链表的存放位置;根据存放位置获取目标链表或其他链表当下的剩余空间,得到由目标链表淘汰的数据组成的第一历史队列以及由其他链表淘汰的数据组成的第二历史队列;根据第一历史队列和第二历史队列确定生成的目标缓存队列。本公开通过在新缓存队列中建立双链表模式,通过链表分别维度筛选,最终得到高频率并且高访问次数的目标缓存队列,提高了目标缓存队列中数据的命中率。

【技术实现步骤摘要】

本公开涉及数据存储领域,具体涉及数据缓存队列的生成方法、装置、计算机设备及存储介质


技术介绍

1、缓存主要是为了提高数据的读取速度。因为服务器和应用客户端之间存在着流量的瓶颈,所以读取大容量数据时,使用缓存来直接为客户端服务,可以减少客户端与服务器端的数据交互,从而大大提高程序的性能。当cpu要读取一个数据时,首先从cpu缓存中查找,找到就立即读取并送给cpu处理;没有找到,就从速率相对较慢的内存中读取并送给cpu处理,同时把这个数据所在的数据块调入缓存中,可以使得以后对整块数据的读取都从缓存中进行,不必再调用内存。正是这样的读取机制使cpu读取缓存的命中率非常高(大多数cpu可达90%左右),也就是说cpu下一次要读取的数据90%都在cpu缓存中,只有大约10%需要从内存读取。这大大节省了cpu直接读取内存的时间,也使cpu读取数据时基本无需等待。

2、为了提高缓存数据的命中率,相关技术会通过设计良好的数据分块、预取、顺序预取、缓存替换等算法来得到缓存队列,比如采用fifo,先进先出队列获取缓存队列,或者采用lru,最近最少使用队列获取缓存队列,或者采用lfu,最近最不常用队列获取缓存队列,但是这些缓存队列方案都存在一些场景的局限性,最终导致生成的缓存队列中数据的命中率低。

3、因此,相关技术在生成缓存队列时,由于算法的自身局限性导致生成的缓存队列中数据的命中率低的问题。


技术实现思路

1、有鉴于此,本公开提供了一种数据缓存队列的生成方法、装置、计算机设备及存储介质,以解决相关技术在生成缓存队列时,由于算法的自身局限性导致生成的缓存队列中数据的命中率低的问题。

2、第一方面,本公开提供了一种数据缓存队列的生成方法,该方法包括:

3、获取待访问的新请求数据;

4、确定新请求数据是否存在于新缓存队列内,若存在,则判定新请求数据是否存在于目标链表内,其中,新缓存队列由目标链表和其他链表组成,其他链表为新缓存队列中除了目标链表之外的链表;

5、根据新请求数据存在于目标链表的情况,确定新请求数据在目标链表或其他链表的存放位置;

6、根据存放位置获取目标链表或其他链表当下的剩余空间,得到由目标链表淘汰的数据组成的第一历史队列以及由其他链表淘汰的数据组成的第二历史队列;

7、根据第一历史队列和第二历史队列确定生成的目标缓存队列。

8、在本公开实施例中,通过获取待访问的新请求数据,确定新请求数据是否存在于新缓存队列内,再根据新请求数据在目标链表内的存在情况,确定新请求数据在目标链表或其他链表的存放位置,然后根据将新请求数据加入存放位置后所得的目标链表或其他链表当下的剩余空间,得到由目标链表淘汰的数据组成的第一历史队列以及由其他链表淘汰的数据组成的第二历史队列,再根据得到的第一历史队列和第二历史队列生成目标缓存队列。这样通过在新缓存队列中建立双链表模式,通过链表(即目标链表和其他链表)分别维度筛选,最终筛选出高频率并且高访问次数的目标缓存队列,提高了目标缓存队列中数据的命中率,解决相关技术在生成缓存队列时,由于算法的自身局限性导致生成的缓存队列中数据的命中率低的问题。

9、在一种可选的实施方式中,根据新请求数据存在于目标链表的情况,确定新请求数据在目标链表或其他链表的存放位置,包括:

10、若新请求数据已存在于目标链表内,则将新请求数据存放在其他链表的头部;若新请求数据未存在于目标链表内,则将新请求数据存放在目标链表的尾部。

11、在一种可选的实施方式中,根据存放位置获取目标链表或其他链表当下的剩余空间,得到由目标链表淘汰的数据组成的第一历史队列以及由其他链表淘汰的数据组成的第二历史队列,包括:

12、循环获取除了新请求数据之外的其他请求数据,并执行存放在其他链表的头部或存放在目标链表的尾部的操作,直到目标链表的剩余空间已满,则从目标链表的头部删除数据,得到由目标链表淘汰的数据组成的第一历史队列,以及直到其他链表的剩余空间已满,则从其他链表的尾部删除数据,得到由其他链表淘汰的数据组成的第二历史队列。

13、在本公开实施例中,通过获取到由目标链表淘汰的数据组成的第一历史队列以及由其他链表淘汰的数据组成的第二历史队列,便于统计出新请求数据和其他请求数据命中第一历史队列和第二历史队列的情况,从而得到准确的高频率并且高访问次数的目标缓存队列。

14、在一种可选的实施方式中,根据第一历史队列和第二历史队列确定生成的目标缓存队列,包括:

15、根据新请求数据和其他请求数据存在于第一历史队列或第二历史队列的情况,更新目标链表的第一长度或其他链表的第二长度;

16、根据第一长度和第二长度,生成目标缓存队列。

17、在本公开实施例中,通过新请求数据和其他请求数据存在于第一历史队列或第二历史队列的情况,更新目标链表的第一长度或其他链表的第二长度,使得最终确定的目标链表的第一长度或其他链表的第二长度是经过动态调整到的、可以提升缓存命中率的长度信息,之后再基于第一长度和第二长度生成目标缓存队列,带来整体系统处理能力的提升。

18、在一种可选的实施方式中,在确定新请求数据是否存在于新缓存队列内之前,方法还包括:

19、获取请求数据和预处理数据队列,其中,预处理数据队列用于记录请求数据在命中预处理数据队列内的缓存数据时,每个缓存数据被连续访问的历史次数;

20、根据历史次数确定每个缓存数据与其他缓存数据之间的关联程度值,其中,其他缓存数据为与缓存数据之间存在关联关系的数据;

21、根据关联程度值将预处理数据队列拆分为多个历史访问数据队列;

22、根据历史访问数据队列的个数和历史访问数据队列的长度,确定关联程度基准值;

23、在预处理数据队列内存在目标缓存数据的情况下,获取与目标缓存数据之间的关联程度值大于或者等于关联程度基准值的关联缓存数据,其中,目标缓存数据为被访问次数大于目标阈值的缓存数据;

24、根据目标缓存数据和关联缓存数据,生成新缓存队列。

25、在本公开实施例中,通过获取请求数据和预处理数据队列,建立缓存数据之间的关联度机制,将缓存数据进行相关性划分,在加入缓存时,将关联的数据批量添加,提高下一个访问对象的缓存命中率。

26、在一种可选的实施方式中,根据历史次数确定每个缓存数据与其他缓存数据之间的关联程度值,包括:

27、将缓存数据作为第一位被访问的数据,将其他缓存数据作为第二位被访问的数据;

28、获取缓存数据被访问之后,其他缓存数据被连续访问的历史次数;

29、将其他缓存数据被连续访问的历史次数作为关联程度值。

30、在本公开实施例中,通过获取缓存数据被访问之后,其他缓存数据被连续访问的历史次数,得到缓存数据与其他缓存数据之间的关联程度值,完成后续相关数据的批量添加,提本文档来自技高网...

【技术保护点】

1.一种数据缓存队列的生成方法,其特征在于,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,所述根据所述新请求数据存在于所述目标链表的情况,确定所述新请求数据在所述目标链表或所述其他链表的存放位置,包括:

3.根据权利要求2所述的方法,其特征在于,所述根据所述存放位置获取所述目标链表或所述其他链表当下的剩余空间,得到由所述目标链表淘汰的数据组成的第一历史队列以及由所述其他链表淘汰的数据组成的第二历史队列,包括:

4.根据权利要求3所述的方法,其特征在于,所述根据所述第一历史队列和所述第二历史队列确定生成的目标缓存队列,包括:

5.根据权利要求1所述的方法,其特征在于,在所述确定所述新请求数据是否存在于新缓存队列内之前,所述方法还包括:

6.根据权利要求5所述的方法,其特征在于,所述根据所述历史次数确定每个所述缓存数据与其他缓存数据之间的关联程度值,包括:

7.根据权利要求5所述的方法,其特征在于,在所述根据所述历史次数确定每个所述缓存数据与其他缓存数据之间的关联程度值之前,所述方法还包括:

<p>8.一种数据缓存队列的生成装置,其特征在于,所述装置包括:

9.一种计算机设备,其特征在于,包括:

10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机指令,所述计算机指令用于使计算机执行权利要求1至7中任一项所述的数据缓存队列的生成方法。

...

【技术特征摘要】

1.一种数据缓存队列的生成方法,其特征在于,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,所述根据所述新请求数据存在于所述目标链表的情况,确定所述新请求数据在所述目标链表或所述其他链表的存放位置,包括:

3.根据权利要求2所述的方法,其特征在于,所述根据所述存放位置获取所述目标链表或所述其他链表当下的剩余空间,得到由所述目标链表淘汰的数据组成的第一历史队列以及由所述其他链表淘汰的数据组成的第二历史队列,包括:

4.根据权利要求3所述的方法,其特征在于,所述根据所述第一历史队列和所述第二历史队列确定生成的目标缓存队列,包括:

5.根据权利要求1所述的方法,其特征在于,在所述确定所...

【专利技术属性】
技术研发人员:李超吴丙涛
申请(专利权)人:苏州元脑智能科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1