一种缓存数据管理方法、系统、终端及存储介质

文档序号:1126949 发布日期:2020-10-02 浏览:12次 >En<

阅读说明:本技术 一种缓存数据管理方法、系统、终端及存储介质 (Cache data management method, system, terminal and storage medium ) 是由 刘少荘 苏志恒 于 2020-05-28 设计创作,主要内容包括:本发明提供一种缓存数据管理方法、系统、终端及存储介质,包括:设置热数据队列、冷数据队列和过期队列;将热数据队列删除的数据存储至冷数据队列,将冷数据队列删除的数据的访问记录存储至过期队列;将冷数据队列或过期队列中被访问的数据转移至热数据队列。相对于传统的LRU、LFU、FIFO、2Q等算法,均有一定程度的改进。相对于LRU算法,能够减轻缓存污染造成的影响;相对于LFU,避免了某些数据高频次访问后不再访问造成的影响;相对于FIFO,扩大了算法的应用场景;相对于2Q算法,可以保存更大批量的历史数据。本发明提出的缓存淘汰算法对于常见的场景,均能起到良好的缓存效果。(The invention provides a cache data management method, a system, a terminal and a storage medium, comprising the following steps: setting a hot data queue, a cold data queue and an expired queue; storing the data deleted by the hot data queue to a cold data queue, and storing the access record of the data deleted by the cold data queue to an overdue queue; and transferring the accessed data in the cold data queue or the expired queue to the hot data queue. Compared with the traditional algorithms of LRU, LFU, FIFO, 2Q and the like, the method has certain improvement. Compared with the LRU algorithm, the method can reduce the influence caused by cache pollution; compared with an LFU, the method avoids the influence caused by no access after high-frequency access of certain data; compared with FIFO, the application scene of the algorithm is enlarged; a larger batch of historical data may be saved relative to the 2Q algorithm. The cache elimination algorithm provided by the invention can achieve a good cache effect on common scenes.)

一种缓存数据管理方法、系统、终端及存储介质

技术领域

本发明属于服务器技术领域,具体涉及一种缓存数据管理方法、系统、终端及存储介质。

背景技术

程序运行过程中,可能会频繁访问同一块数据,若数据一直位于磁盘中,则需要程序不停地对磁盘执行获取、保存等操作,频繁的IO会严重降低系统性能。为此提出了缓存的概念,将访问过的数据保存在缓存中,程序下次访问时,首先判断数据是否在缓存中,若在缓存中,则直接从缓存获取,称之为缓存命中,此过程会大大缩短读取数据的时间;若不在缓存中,则从磁盘中获取数据,并保存到缓存。缓存容量有限,当缓存未命中且容量已满时,需要删除缓存中的一条旧数据,加入一条新数据缓存。缓存数据不能随机删除,至于应该淘汰哪些数据,应该按照缓存淘汰算法进行,缓存淘汰算法也是近些年研究的热点。

常见的缓存淘汰算法有LRU,LFU,FIFO等,这些算法存在着各种问题,LRU 仅考虑最近访问的时间,LFU仅考虑数据出现的频率,FIFO则只考虑先进先出等。本发明提出了一种既考虑最近访问时间,又考虑出现频率的缓存淘汰算法,对于常见的应用场景,都能起到良好的缓存效果。

发明内容

针对现有技术的上述不足,本发明提供一种缓存数据管理方法、系统、终端及存储介质,以解决上述技术问题。

第一方面,本发明提供一种缓存数据管理方法,包括:

设置热数据队列、冷数据队列和过期队列;

将热数据队列删除的数据存储至冷数据队列,将冷数据队列删除的数据的访问记录存储至过期队列;

将冷数据队列或过期队列中被访问的数据转移至热数据队列。

进一步的,所述方法还包括:

设置热数据队列、冷数据队列和过期队列的大小,其中过期队列大于热数据队列和冷数据队列。

进一步的,所述将冷数据队列或过期队列中被访问的数据转移至热数据队列,包括:

若被访问数据在冷数据队列或过期队列中,则将被访问数据***热数据队列尾部,并将所述被访问数据从原队列中删除。

进一步的,在所述将被访问数据***热数据队列尾部之前,所述方法还包括:

判断热数据队列是否已满:

若是,则将所述热数据队列的头节点数据删除。

第二方面,本发明提供一种缓存数据管理系统,包括:

队列设置单元,配置用于设置热数据队列、冷数据队列和过期队列;

删除转移单元,配置用于将热数据队列删除的数据存储至冷数据队列,将冷数据队列删除的数据的访问记录存储至过期队列;

访问转移单元,配置用于将冷数据队列或过期队列中被访问的数据转移至热数据队列。

进一步的,所述系统还包括:

队列大小设置模块,配置用于设置热数据队列、冷数据队列和过期队列的大小,其中过期队列大于热数据队列和冷数据队列。

进一步的,所述访问转移单元包括:

访问转移模块,配置用于若被访问数据在冷数据队列或过期队列中,则将被访问数据***热数据队列尾部,并将所述被访问数据从原队列中删除。

进一步的,所述系统还包括:

容量判断模块,配置用于判断热数据队列是否已满;

数据删除模块,配置用于若热数据队列已满,则将所述热数据队列的头节点数据删除。

第三方面,提供一种终端,包括:

处理器、存储器,其中,

该存储器用于存储计算机程序,

该处理器用于从存储器中调用并运行该计算机程序,使得终端执行上述的终端的方法。

第四方面,提供了一种计算机存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。

本发明的有益效果在于,

本发明提供的缓存数据管理方法、系统、终端及存储介质,相对于传统的 LRU、LFU、FIFO、2Q等算法,均有一定程度的改进。相对于LRU算法,能够减轻缓存污染造成的影响;相对于LFU,避免了某些数据高频次访问后不再访问造成的影响;相对于FIFO,扩大了算法的应用场景;相对于2Q算法,可以保存更大批量的历史数据。本发明提出的缓存淘汰算法对于常见的场景,均能起到良好的缓存效果。

此外,本发明设计原理可靠,结构简单,具有非常广泛的应用前景。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明一个实施例的方法的示意性流程图。

图2是本发明一个实施例的方法的示意性流程图。

图3是本发明一个实施例的方法的示意性流程图。

图4是本发明一个实施例的系统的示意性框图。

图5为本发明实施例提供的一种终端的结构示意图。

具体实施方式

为了使本技术领域的人员更好地理解本发明中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。

图1是本发明一个实施例的方法的示意性流程图。其中,图1执行主体可以为一种缓存数据管理系统。

如图1所示,该方法100包括:

步骤110,设置热数据队列、冷数据队列和过期队列;

步骤120,将热数据队列删除的数据存储至冷数据队列,将冷数据队列删除的数据的访问记录存储至过期队列;

步骤130,将冷数据队列或过期队列中被访问的数据转移至热数据队列。

请参考图2和图3,具体的,所述缓存数据管理方法包括:

首先算法需要提供三个队列,Q1保存短时间内访问两次或两次以上的数据缓存;Q2保存访问一次的数据缓存;Q3保存从Q2中淘汰的数据记录,仅保存历史访问记录,不保存缓存数据。Q1中的数据保持较高频次访问,称为热数据——HData;Q2中数据,为近期第一次访问数据,或从热数据中冷却下来的数据,称为冷数据——CData;Q3中数据称为过期数据——SData。Q1、Q2、Q3 队列各自设置固定的大小,一般来说,Q3大于Q1、Q2。

热数据、冷数据保存在缓存队列Q1、Q2中,过期数据保存在Q3中,但Q3 中仅保存数据访问记录,不保存实际的缓存数据。考虑到缓存中已有冷热数据划分,若Q3也保存到缓存中,则冷数据、过期数据没有区分意义,并且过期数据不保存缓存,这样有利于保存大批量的历史数据访问记录,而不占用大量的空间。

三种数据之间的转换关系如下:热数据与冷数据之间可互相转换,冷数据可转换为过期数据,过期数据可转换为热数据。冷热数据之间的转换及冷数据转换为过期数据容易理解,过期数据转换为热数据,该如何理解?当有一条数据A位于过期数据SData中,又有访问数据A,过期数据中存储的是近期访问过的数据,而第一次访问的数据会进入到CData,因此数据A转换为HData比转换为CData更合理。

程序访问数据,首先判断数据状态,根据当前访问数据的状态进行不同的处理;

(1).首先判断新访问的数据是否位于Q1中,若位于Q1,则将新数据移动至Q1尾部;若不位于Q1,则进入(2);

(2).判断新数据是否位于Q2中,若位于Q2,则将数据***到Q1尾部。若此时Q1已满,则先删除Q1头节点,再***新数据,进入(4);若不位于Q2,则进入(3);

(3).判断新数据是否位于Q3,若位于Q3,则将数据从Q3中删除,并***到Q1尾部,同(2)处理,若Q1已满,则先删除Q1头节点,再***新数据,进入(4);

(4).从Q1删除的数据,***到Q2尾部,若Q2已满,则先删除Q2头节点再***。Q2删除的节点,Q3操作同理。

如图4所示,该系统400包括:

队列设置单元410,配置用于设置热数据队列、冷数据队列和过期队列;

删除转移单元420,配置用于将热数据队列删除的数据存储至冷数据队列,将冷数据队列删除的数据的访问记录存储至过期队列;

访问转移单元430,配置用于将冷数据队列或过期队列中被访问的数据转移至热数据队列。

可选地,作为本发明一个实施例,所述系统还包括:

队列大小设置模块,配置用于设置热数据队列、冷数据队列和过期队列的大小,其中过期队列大于热数据队列和冷数据队列。

可选地,作为本发明一个实施例,所述访问转移单元包括:

访问转移模块,配置用于若被访问数据在冷数据队列或过期队列中,则将被访问数据***热数据队列尾部,并将所述被访问数据从原队列中删除。

可选地,作为本发明一个实施例,所述系统还包括:

容量判断模块,配置用于判断热数据队列是否已满;

数据删除模块,配置用于若热数据队列已满,则将所述热数据队列的头节点数据删除。

图5为本发明实施例提供的一种终端系统500的结构示意图,该终端系统 500可以用于执行本发明实施例提供的缓存数据管理方法。

其中,该终端系统500可以包括:处理器510、存储器520及通信单元530。这些组件通过一条或多条总线进行通信,本领域技术人员可以理解,图中示出的服务器的结构并不构成对本发明的限定,它既可以是总线形结构,也可以是星型结构,还可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

其中,该存储器520可以用于存储处理器510的执行指令,存储器520可以由任何类型的易失性或非易失性存储终端或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。当存储器520中的执行指令由处理器510 执行时,使得终端500能够执行以下上述方法实施例中的部分或全部步骤。

处理器510为存储终端的控制中心,利用各种接口和线路连接整个电子终端的各个部分,通过运行或执行存储在存储器520内的软件程序和/或模块,以及调用存储在存储器内的数据,以执行电子终端的各种功能和/或处理数据。所述处理器可以由集成电路(Integrated Circuit,简称IC)组成,例如可以由单颗封装的IC所组成,也可以由连接多颗相同功能或不同功能的封装IC而组成。举例来说,处理器510可以仅包括中央处理器(Central Processing Unit,简称CPU)。在本发明实施方式中,CPU可以是单运算核心,也可以包括多运算核心。

通信单元530,用于建立通信信道,从而使所述存储终端可以与其它终端进行通信。接收其他终端发送的用户数据或者向其他终端发送用户数据。

本发明还提供一种计算机存储介质,其中,该计算机存储介质可存储有程序,该程序执行时可包括本发明提供的各实施例中的部分或全部步骤。所述的存储介质可为磁碟、光盘、只读存储记忆体(英文:read-only memory,简称: ROM)或随机存储记忆体(英文:random access memory,简称:RAM)等。

因此,本发明相对于传统的LRU、LFU、FIFO、2Q等算法,均有一定程度的改进。相对于LRU算法,能够减轻缓存污染造成的影响;相对于LFU,避免了某些数据高频次访问后不再访问造成的影响;相对于FIFO,扩大了算法的应用场景;相对于2Q算法,可以保存更大批量的历史数据。本发明提出的缓存淘汰算法对于常见的场景,均能起到良好的缓存效果,本实施例所能达到的技术效果可以参见上文中的描述,此处不再赘述。

本领域的技术人员可以清楚地了解到本发明实施例中的技术可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明实施例中的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中如U盘、移动硬盘、只读存储器 (ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质,包括若干指令用以使得一台计算机终端(可以是个人计算机,服务器,或者第二终端、网络终端等)执行本发明各个实施例所述方法的全部或部分步骤。

本说明书中各个实施例之间相同相似的部分互相参见即可。尤其,对于终端实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例中的说明即可。

在本发明所提供的几个实施例中,应该理解到,所揭露的系统和方法,可以通过其它的方式实现。例如,以上所描述的系统实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,系统或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。

尽管通过参考附图并结合优选实施例的方式对本发明进行了详细描述,但本发明并不限于此。在不脱离本发明的精神和实质的前提下,本领域普通技术人员可以对本发明的实施例进行各种等效的修改或替换,而这些修改或替换都应在本发明的涵盖范围内/任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

10页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种交换机光模块信息获取系统、方法、设备及存储介质

网友询问留言

已有0条留言

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

精彩留言,会给你点赞!

技术分类