一种数据缓存方法、装置、设备及存储介质与流程

文档序号:16845531发布日期:2019-02-12 22:10阅读:114来源:国知局
一种数据缓存方法、装置、设备及存储介质与流程

本发明涉及数据存储领域,特别涉及一种数据缓存方法、装置、设备及计算机可读存储介质。



背景技术:

随着各种系统应用的用户数和访问量的逐渐增大,各系统应用需要支撑更多的并发量,因此缓存设备的性能越来越受到重视。为了适应逐渐增大的并发量和逐渐提升的用户需求,需要提高系统应用响应用户请求的速度和效率,因此需要在能够对数据信息进行缓存的同时,还需要提升缓存设备的缓存区的命中率,命中率也即当需要再次获取预先存储的目标数据时,该目标数据存在于缓存区中的可能性更大,因此能够避免频繁地从数据持久层获取目标数据。

在现有技术中,通过预先根据使用场景为存储区设置相适应的存储策略,当存在待缓存数据时,则使用该存储策略进行缓存。但是,由于数据类型的多样化、在操作过程中的场景变化以及系统应用功能的扩展等因素,预先设置的缓存策略很可能不再适用于后续的待缓存数据,因此,将降低缓存区的命中率,降低缓存设备的性能。

因此,如何提高缓存区的命中率,提高缓存设备的性能是本领域技术人员目前需要解决的技术问题。



技术实现要素:

有鉴于此,本发明的目的在于提供一种数据缓存方法,能够提高缓存区的命中率,提高缓存设备的性能;本发明的另一目的是提供一种数据缓存装置、设备及计算机可读存储介质,均具有上述有益效果。

为解决上述技术问题,本发明提供一种数据缓存方法,包括:

预先在缓存区内根据不同的缓存主题设置多个缓存子区,并分别为各所述缓存子区设置对应的存储策略;

当存在待缓存数据时,获取所述待缓存数据的数据主题;

利用所述数据主题与所述缓存主题的对应关系选择目标缓存子区;

利用所述目标缓存子区对应的存储策略存储所述待缓存数据。

优选地,当所述缓存子区中不存在与所述数据主题对应的目标缓存子区时,该方法进一步包括:

在所述缓存区内增加设置与所述待缓存数据的数据主题对应的目标缓存子区并设置对应的存储策略,并进入所述利用所述目标缓存子区对应的存储策略存储所述待缓存数据的步骤。

优选地,获取所述待缓存数据的步骤具体包括:

获取用户请求;

判断所述用户请求对应的数据信息是否存在于所述缓存子区;

若否,则从数据持久层中获取与所述用户请求对应的数据信息,以得到所述待缓存数据。

优选地,所述缓存主题具体为根据任务类型设置的主题。

优选地,所述预先在缓存区内根据不同的缓存主题设置多个缓存子区具体包括:

预先设置多个不同的缓存主题;

将不同的所述缓存主题进行分类;

在所述缓存区内设置多个所述缓存子区,并将属于同一类的所述缓存主题设置于同一个缓存子区。

优选地,进一步包括:

统计在预设时间内访问各缓存子区的访问次数;

当存在访问次数少于预设次数阈值的目标缓存子分区时,清除所述目标缓存子分区的缓存主题及所述目标缓存子分区中的缓存内容。

为解决上述技术问题,本发明还提供一种数据缓存装置,包括:

设置模块,用于预先在缓存区内根据不同的缓存主题设置多个缓存子区,并分别为各所述缓存子区设置对应的存储策略;

获取模块,用于当存在待缓存数据时,获取所述待缓存数据的数据主题;

选择模块,用于利用所述数据主题与所述缓存主题的对应关系选择目标缓存子区;

存储模块,用于利用所述目标缓存子区对应的存储策略存储所述待缓存数据。

为解决上述技术问题,本发明还提供一种数据缓存设备,包括:

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

处理器,用于执行所述计算机程序时实现上述任一种数据缓存方法的步骤。

为解决上述技术问题,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一种数据缓存方法的步骤。

本发明提供的一种数据缓存方法,通过预先在缓存区内根据不同的缓存主题设置多个缓存子区,并分别为各缓存子区设置对应的存储策略;当存在待缓存数据时,获取待缓存数据的数据主题;然后利用数据主题与缓存主题的对应关系选择目标缓存子区;从而利用目标缓存子区对应的存储策略存储待缓存数据。由于将待缓存数据缓存于与该待缓存数据的数据主题相对应的缓存子区中,因此,各缓存子区中缓存的数据信息为后续需要再次使用的目标数据的可能性更大,也即缓存区存储有目标数据的可能性更大,因此提高了缓存区的命中率,提升了缓存设备的性能。

为解决上述技术问题,本发明还提供了一种数据缓存装置、设备及计算机可读存储介质,均具有上述有益效果。

附图说明

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

图1为本发明实施例提供的一种数据缓存方法的流程图;

图2为本发明实施例提供的另一种数据缓存方法的流程图;

图3为本发明实施例提供的一种数据缓存装置的结构图;

图4为本发明实施例提供的一种数据缓存设备的结构图。

具体实施方式

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

本发明实施例的核心是提供一种数据缓存方法,能够提高缓存区的命中率,提高缓存设备的性能;本发明的另一核心是提供一种数据缓存装置、设备及计算机可读存储介质,均具有上述有益效果。

为了使本领域技术人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。

图1为本发明实施例提供的一种数据缓存方法的流程图。如图1所示,一种数据缓存方法包括:

s10:预先在缓存区内根据不同的缓存主题设置多个缓存子区,并分别为各缓存子区设置对应的存储策略。

具体的,预先设置多个不同的缓存主题,包括缓存主题的数量和缓存主题具体类型信息等,然后根据缓存主题的数量在缓存区内设置多个缓存子区。缓存子区需要囊括所有的缓存主题,缓存子区的总容量需小于或等于缓存区的总容量。另外,各缓存子区的存储空间的大小可以是相同的,也可以根据缓存主题对应设置,存储空间的大小分配过程可以是按照缓存主题进行分配,也可以是根据比例进行分配,本实施例对此均不作限定。

在根据不同的缓存主题设置出多个缓存子区之后,分别为各缓存子区设置对应的存储策略。可以理解的是,常见的存储策略包括先进先出策略(fifo),也即清除最早被缓存的数据信息;最少使用策略(lfu),根据数据信息的被使用次数,清除使用次数较少的数据信息;最近最少使用策略(lru),根据数据信息最后一次被使用的时间戳,清除最远使用时间戳的数据信息。需要说明的是,在本实施例中,一般是为一个缓存子区对应设置一个存储策略,以避免在进行数据缓存的过程中,由于多个存储策略造成的重复存储甚至存储混乱。

s20:当存在待缓存数据时,获取待缓存数据的数据主题。

当检测出当前存在待缓存数据时,也即检测出需要进行缓存操作的数据信息时,获取待缓存数据的数据主题。可以理解的是,各数据信息均有其对应的主题,因此当判断出存在待缓存数据时,获取待缓存数据的数据主题。

s30:利用数据主题与缓存主题的对应关系选择目标缓存子区。

可以理解的是,在获取到待缓存数据的数据主题之后,根据数据主题与缓存主题的对应关系,选择与数据主题对应的目标缓存子区。目标缓存子区也即用于存储待缓存数据的缓存子区。一般的,一个待缓存数据对应一个目标缓存子区。需要说明的是,数据主题与缓存主题的对应关系可以是相同的关系,也即选择与数据主题相同的缓存主题,并将该缓存主题对应的缓存子区作为目标缓存子区。

s40:利用目标缓存子区对应的存储策略存储待缓存数据。

具体的,由于在之前已经为各缓存子区设置了与各缓存子区对应的存储策略,因此在利用数据主题与缓存主题的对应关系得出目标缓存子区之后,利用目标缓存子区的存储策略对该待缓存信息进行缓存操作,以将待缓存数据缓存于目标缓存子区中。

本发明实施例提供的一种数据缓存方法,通过预先在缓存区内根据不同的缓存主题设置多个缓存子区,并分别为各缓存子区设置对应的存储策略;当存在待缓存数据时,获取待缓存数据的数据主题;然后利用数据主题与缓存主题的对应关系选择目标缓存子区;从而利用目标缓存子区对应的存储策略存储待缓存数据。由于将待缓存数据缓存于与该待缓存数据的数据主题相对应的缓存子区中,因此,各缓存子区中缓存的数据信息为后续需要再次使用的目标数据的可能性更大,也即缓存区存储有目标数据的可能性更大,因此提高了缓存区的命中率,提升了缓存设备的性能。

图2为本发明实施例提供的另一种数据缓存方法的流程图,在上述实施例的基础上,本实施例对技术方案作了进一步的说明和优化,具体的,获取待缓存数据的步骤具体包括:

s21:获取用户请求;

s22:判断用户请求对应的数据信息是否存在于缓存子区;

s23:若否,则从数据持久层中获取与用户请求对应的数据信息,以得到待缓存数据。

在本实施例中,进一步考虑到缓存区中缓存的数据信息的来源。具体的,当获取到用户请求时,判断用户请求对应的数据信息是否存在与缓存子区中,若存在,则表示可以直接从缓存区获取数据信息,因此不需要进行缓存操作;否则,则需要根据用户请求从数据持久层中获取与用户请求对应的数据信息,以得到待缓存数据,然后利用获取到的待缓存数据的数据主题与缓存主题的对应关系存储于对应的缓存子区中。需要说明的是,数据持久层是用于存储数据的设备,例如可以是磁盘或者数据库等。

可见,本实施例提供的数据缓存方法,能够对多种途径得出的待缓存数据进行缓存,提高了实用性。

在上述实施例的基础上,本实施例对技术方案作了进一步的说明和优化,具体的,当缓存子区中不存在与数据主题对应的目标缓存子区时,该方法进一步包括:

在缓存区内增加设置与待缓存数据的数据主题对应的目标缓存子区并设置对应的存储策略,并进入利用目标缓存子区对应的存储策略存储待缓存数据的步骤。

具体的,考虑到可能存在缓存子区中不存在与获取到的待缓存数据的数据主题相对应的目标缓存子区的情况,因此为了便于后期使用该待缓存数据,在本实施例中,进一步在缓存区内增加设置与该待缓存数据的数据主题对应的目标缓存子区,并为该缓存子区设置对应的缓存策略,然后利用缓存策略将该待缓存数据缓存于该目标缓存子区中。

本实施例提供的数据缓存方法,相较于当缓存子区中不存在与待缓存数据的数据主题相对应的缓存主题时,则将该待缓存数据丢弃或者存储于数据持久层的方式,本方法通过为该待缓存数据新增目标缓存子区并利用对应的存储策略将该待缓存数据缓存于该目标缓存子区,从而提高缓存区的可扩展性,更便于后续获取该待缓存数据。

在上述实施例的基础上,本实施例对技术方案作了进一步的说明和优化,具体的,本方法进一步包括:

统计在预设时间内访问各缓存子区的访问次数;

当存在访问次数少于预设次数阈值的目标缓存子分区时,清除目标缓存子分区的缓存主题及目标缓存子分区中的缓存内容。

具体的,在本实施例中,预先为各缓存子区设置计数器,当存在访问缓存子区中的数据信息的操作时,则将对应的缓存子区的计数器的计数值增加1,然后统计在预设时间内访问各缓存子区的访问次数。在到达预设时间时,将各缓存子区的访问次数与预设次数阈值进行比较。当存在访问次数少于预设次数阈值的目标缓存子区时,表示该缓存子区中的数据信息在后期被访问的次数较少,因此清除目标缓存子分区的缓存主题及目标缓存子分区中的缓存内容。需要说明的是,在本实施例中,可以将预设次数阈值设置为0,也可以根据实际需求以及实际操作经验设置为其他值。

可见,本实施例提供的数据缓存方法,能够进一步提高缓存区的命中率。

在上述实施例的基础上,本实施例对技术方案作了进一步的说明和优化,具体的,预先在缓存区内根据不同的缓存主题设置多个缓存子区具体包括:

预先设置多个不同的缓存主题;

将不同的缓存主题进行分类;

在缓存区内设置多个缓存子区,并将属于同一类的缓存主题设置于同一个缓存子区。

具体的,预先设置多个不同的缓存主题,然后将不同的缓存主题进行分类,具体可以将两个或者两个以上的缓存主题划分为一类,然后将属于同一类的缓存主题设置于同一个缓存子区,也即一个缓存子区可以订阅多个属于同一类的缓存主题。通过将多个缓存主题设置于同一个缓存子区,也即为同一个缓存子区设置多个同一类的缓存主题,在保障能够对多种类型的数据主题对应的待缓存数据进行缓存的同时,减少了缓存子区的数量,使得缓存区内更加简洁。

作为优选的实施方式,缓存主题具体为根据任务类型设置的主题。

在具体实施中,可以根据任务类型设置缓存主题。例如根据长任务与短任务类型设置缓存主题,更具体的,如根据待缓存数据需要缓存于逻辑池或者逻辑卷的任务类型设置缓存主题。在其他的实施例中,也可以根据其他的方式,例如根据数据类型或者数据大小或者数据格式设置缓存主题,本实施例对此不做限定。由于不同的任务类型对应的存储策略的差异较大,因此本实施例通过根据任务类型设置缓存主题,能够提高缓存区的命中率。

上文对于本发明提供的一种数据缓存方法的实施例进行了详细的描述,本发明还提供了一种与该方法对应的数据缓存装置、设备及计算机可读存储介质,由于装置、设备及计算机可读存储介质部分的实施例与方法部分的实施例相互照应,因此装置、设备及计算机可读存储介质部分的实施例请参见方法部分的实施例的描述,这里暂不赘述。

图3为本发明实施例提供的一种数据缓存装置的结构图,如图3所示,一种数据缓存装置包括:

设置模块31,用于预先在缓存区内根据不同的缓存主题设置多个缓存子区,并分别为各缓存子区设置对应的存储策略;

获取模块32,用于当存在待缓存数据时,获取待缓存数据的数据主题;

选择模块33,用于利用数据主题与缓存主题的对应关系选择目标缓存子区;

存储模块34,用于利用目标缓存子区对应的存储策略存储待缓存数据。

本发明实施例提供的数据缓存装置,具有上述数据缓存方法的有益效果。

图4为本发明实施例提供的一种数据缓存设备的结构图,如图4所示,一种数据缓存设备包括:

存储器41,用于存储计算机程序;

处理器42,用于执行计算机程序时实现如上述数据缓存方法的步骤。

本发明实施例提供的数据缓存设备,具有上述数据缓存方法的有益效果。

为解决上述技术问题,本发明还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上述数据缓存方法的步骤。

本发明实施例提供的计算机可读存储介质,具有上述数据缓存方法的有益效果。

以上对本发明所提供的数据缓存方法、装置、设备及计算机可读存储介质进行了详细介绍。本文中应用了具体实施例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1