CN111258929A - 缓存控制方法、装置和计算机可读存储介质 - Google Patents

缓存控制方法、装置和计算机可读存储介质 Download PDF

Info

Publication number
CN111258929A
CN111258929A CN201811465473.3A CN201811465473A CN111258929A CN 111258929 A CN111258929 A CN 111258929A CN 201811465473 A CN201811465473 A CN 201811465473A CN 111258929 A CN111258929 A CN 111258929A
Authority
CN
China
Prior art keywords
cache
cached
duration
expiration time
caching
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.)
Granted
Application number
CN201811465473.3A
Other languages
English (en)
Other versions
CN111258929B (zh
Inventor
刘洪通
吴维伟
杨海勤
王志远
毛宝龙
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Jingdong Century Trading Co Ltd
Beijing Jingdong Shangke Information Technology Co Ltd
Original Assignee
Beijing Jingdong Century Trading Co Ltd
Beijing Jingdong Shangke Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Jingdong Century Trading Co Ltd, Beijing Jingdong Shangke Information Technology Co Ltd filed Critical Beijing Jingdong Century Trading Co Ltd
Priority to CN201811465473.3A priority Critical patent/CN111258929B/zh
Publication of CN111258929A publication Critical patent/CN111258929A/zh
Application granted granted Critical
Publication of CN111258929B publication Critical patent/CN111258929B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms

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

缓存控制方法、装置和计算机可读存储介质
技术领域
本公开涉及计算机技术领域,特别涉及一种缓存控制方法、装置和计算机可读存储介质。
背景技术
计算机操作系统中有很多设计用到缓存。例如,Linux虚拟文件系统(VFS,VirtualFile System),利用空闲的内存实现了Page Cache(页高速缓冲存储器)功能,以缓存文件的元数据和数据,提高文件系统性能。
由于待缓存的对象集合往往远远大于缓存所能容纳的对象集合,因此需要置换算法,置换出一部分对象,用以缓存新的对象。一般常见的缓存置换方法有两种:LRU(LeastRecently Used,最近最少使用)算法和FIFO(First Input First Output,先入先出)算法。
LRU算法根据对象的历史访问记录来淘汰,在缓存将满的情况下新对象优先置换最近最少使用的对象。FIFO算法在缓存将满的情况下,新对象优先置换最先进入缓存的对象。
发明内容
发明人发现:缓存所能容纳的对象集合有限,应用现有的缓存置换算法,在大量对象被随机访问时,访问热度高的对象也容易被置换出去,大部分被访问的对象无法从缓存命中,造成命中率较差,缓存并没有起到应有的加速作用。另外,无法缓存固定的一部分对象。如果对象集合中有一部分核心的对象可能会在将来的一段时间内多次访问,而这部分对象对于提升系统性能起到关键作用,现有的缓存置换方法无法保证核心对象一直被缓存,而不被置换出去。
本公开所要解决的一个技术问题是:如何提高缓存效果,提升系统性能。
根据本公开的一些实施例,提供的一种缓存控制方法,包括:获取待缓存对象和待缓存对象的缓存持续时间;确定缓存区剩余空间是否足够对待缓存对象进行缓存;在缓存区剩余空间不足够对待缓存对象进行缓存的情况下,根据待缓存对象的缓存过期时间和已缓存对象的缓存过期时间的比对情况,对待缓存对象进行处理;其中,待缓存对象的缓存过期时间为当前时刻加上缓存持续时间,已缓存对象的缓存过期时间为缓存时刻加上缓存持续时间。
在一些实施例中,根据待缓存对象的缓存过期时间和已缓存对象的缓存过期时间的比对情况,对待缓存对象进行处理包括:在存在已缓存对象的缓存过期时间早于待缓存对象的缓存过期时间的情况下,将缓存过期时间最近的已缓存对象释放,将待缓存对象进行缓存;或者在已缓存对象的缓存过期时间均晚于待缓存对象的缓存过期时间的情况下,将待缓存对象进行释放。
在一些实施例中,在缓存过期时间最近的已缓存对象有多个的情况下,根据预设缓存置换策略选取已缓存对象进行释放。
在一些实施例中,缓存区被划分为第一缓存区和第二缓存区,其中,第一缓存区用于对缓存持续时间为预设最低值的对象进行缓存,第二缓存区用于对缓存持续时间不为预设最低值的对象进行缓存;在存在已缓存对象的缓存过期时间早于待缓存对象的缓存过期时间的情况下,将缓存过期时间最近的已缓存对象释放,将待缓存对象进行缓存包括:在待缓存对象的缓存持续时间大于预设最低值,且第一缓存区不为空的情况下,根据预设缓存置换策略选取第一缓存区中的已缓存对象进行释放,扩大第二缓存区空间,将待缓存对象存入第二缓存区;或者在待缓存对象的缓存持续时间大于预设最低值,且第一缓存区为空的情况下,选取第二缓存区中的缓存过期时间最近的已缓存对象进行释放,将待缓存对象存入第二缓存区。
在一些实施例中,根据待缓存对象的缓存过期时间和已缓存对象的缓存过期时间的比对情况,对待缓存对象进行处理还包括:在待缓存对象的缓存持续时间为预设最低值,且第一缓存区不为空的情况下,根据预设缓存置换策略选取第一缓存区中的已缓存对象进行释放,将待缓存对象存入第一缓存区;在待缓存对象的缓存持续时间为预设最低值,且第一缓存区为空的情况下,将待缓存对象进行释放。
在一些实施例中,该方法还包括:在缓存区剩余空间足够对待缓存对象进行缓存的情况下,将待缓存对象进行缓存。
在一些实施例中,缓存区被划分为第一缓存区和第二缓存区,其中,第一缓存区用于对缓存持续时间为预设最低值的对象进行缓存,第二缓存区用于对缓存持续时间不为预设最低值的对象进行缓存;在缓存区剩余空间足够对待缓存对象进行缓存的情况下,将述待缓存对象进行缓存包括:在待缓存对象的缓存持续时间为预设最低值的情况下,扩大第一缓存区空间,将待缓存对象存入第一缓存区;或者在待缓存对象的缓存持续时间不为预设最低值的情况下,扩大第二缓存区空间,将待缓存对象存入第二缓存区。
根据本公开的另一些实施例,提供的一种缓存控制装置,包括:待缓存信息获取模块,用于获取待缓存对象和待缓存对象的缓存持续时间;缓存空间确定模块,用于确定缓存区剩余空间是否足够对待缓存对象进行缓存;缓存控制模块,用于在缓存区剩余空间不足够对待缓存对象进行缓存的情况下,根据待缓存对象的缓存过期时间和已缓存对象的缓存过期时间的比对情况,对待缓存对象进行处理;其中,待缓存对象的缓存过期时间为当前时刻加上缓存持续时间,已缓存对象的缓存过期时间为缓存时刻加上缓存持续时间。
在一些实施例中,缓存控制模块用于在存在已缓存对象的缓存过期时间早于待缓存对象的缓存过期时间的情况下,将缓存过期时间最近的已缓存对象释放,将待缓存对象进行缓存;或者在已缓存对象的缓存过期时间均晚于待缓存对象的缓存过期时间的情况下,将待缓存对象进行释放。
在一些实施例中,缓存控制模块用于在缓存过期时间最近的已缓存对象有多个的情况下,根据预设缓存置换策略选取已缓存对象进行释放。
在一些实施例中,缓存区被划分为第一缓存区和第二缓存区,其中,第一缓存区用于对缓存持续时间为预设最低值的对象进行缓存,第二缓存区用于对缓存持续时间不为预设最低值的对象进行缓存;缓存控制模块用于在待缓存对象的缓存持续时间大于预设最低值,且第一缓存区不为空的情况下,根据预设缓存置换策略选取第一缓存区中的已缓存对象进行释放,扩大第二缓存区空间,将待缓存对象存入第二缓存区;或者在待缓存对象的缓存持续时间大于预设最低值,且第一缓存区为空的情况下,选取第二缓存区中的缓存过期时间最近的已缓存对象进行释放,将待缓存对象存入第二缓存区。
在一些实施例中,缓存控制模块还用于在待缓存对象的缓存持续时间为预设最低值,且第一缓存区不为空的情况下,根据预设缓存置换策略选取第一缓存区中的已缓存对象进行释放,将待缓存对象存入第一缓存区;在待缓存对象的缓存持续时间为预设最低值,且第一缓存区为空的情况下,将待缓存对象进行释放。
在一些实施例中,缓存控制模块还用于在缓存区剩余空间足够对待缓存对象进行缓存的情况下,将待缓存对象进行缓存。
在一些实施例中,缓存区被划分为第一缓存区和第二缓存区,其中,第一缓存区用于对缓存持续时间为预设最低值的对象进行缓存,第二缓存区用于对缓存持续时间不为预设最低值的对象进行缓存;缓存控制模块还用于在待缓存对象的缓存持续时间为预设最低值的情况下,扩大第一缓存区空间,将待缓存对象存入第一缓存区;或者在待缓存对象的缓存持续时间不为预设最低值的情况下,扩大第二缓存区空间,将待缓存对象存入第二缓存区。
根据本公开的又一些实施例,提供的一种缓存控制装置,包括:存储器;以及耦接至存储器的处理器,处理器被配置为基于存储在存储器中的指令,执行如前述任意实施例的缓存控制方法。
根据本公开的又一些实施例,提供的一种计算机可读存储介质,其上存储有计算机程序,其中,该程序被处理器执行时实现前述任意实施例的缓存控制方法。
本公开为待缓存对象设置缓存持续时间,进而在缓存区剩余空间不足够对待缓存对象进行缓存的情况下,根据待缓存对象的缓存过期时间和已缓存对象的缓存过期时间的比对情况,选择对待缓存对象进行缓存或释放。本公开的方案能够根据需求为缓存对象设置缓存持续时间,即使在大量对象被随机访问时,缓存持续时间长的对象也不容易被置换出去。因此,本公开的方案能够提高缓存效果,提升系统性能。
通过以下参照附图对本公开的示例性实施例的详细描述,本公开的其它特征及其优点将会变得清楚。
附图说明
为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出本公开的一些实施例的缓存控制方法的流程示意图。
图2示出本公开的另一些实施例的缓存控制方法的流程示意图。
图3示出本公开的又一些实施例的缓存控制方法的流程示意图。
图4示出本公开的一些实施例的缓存控制装置的结构示意图。
图5示出本公开的另一些实施例的缓存控制装置的结构示意图。
图6示出本公开的又一些实施例的缓存控制装置的结构示意图。
具体实施方式
下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本公开及其应用或使用的任何限制。基于本公开中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
本公开提供一种缓存控制方法,下面结合图1描述本公开缓存控制方法的一些实施例。
图1为本公开缓存控制方法一些实施例的流程图。如图1所示,该实施例的方法包括:步骤S102~S106。
在步骤S102中,获取待缓存对象和待缓存对象的缓存持续时间。
对象的缓存持续时间可以根据应用层的需求进行设置。例如,可以针对访问热度高,或者将来被访问的概率高,或者对象对于提升系统性能起到关键作用的对象设置较长缓存持续时间。待缓存对象的缓存持续时间也可以设置为零,或者没有对应的缓存持续时间的待缓存对象,其缓存持续时间默认为零。缓存持续时间为零并不一定表示待缓存对象不需要被缓存,可以表示待缓存对象的缓存持续时间最短。
在步骤S104中,确定缓存区剩余空间是否足够对待缓存对象进行缓存。
系统的缓存空间是有上限的,到待缓存对象到来时,需要确定是否有足够的缓存剩余空间对待缓存对象进行缓存。
在步骤S106中,在缓存区剩余空间不足够对待缓存对象进行缓存的情况下,根据待缓存对象的缓存过期时间和已缓存对象的缓存过期时间的比对情况,对待缓存对象进行处理。
待缓存对象的缓存过期时间为当前时刻加上缓存持续时间,已缓存对象的缓存过期时间为缓存时刻加上缓存持续时间。
在一些实施例中,在存在已缓存对象的缓存过期时间早于待缓存对象的缓存过期时间的情况下,将缓存过期时间最近的已缓存对象释放,将待缓存对象进行缓存;或者在已缓存对象的缓存过期时间均晚于待缓存对象的缓存过期时间的情况下,将待缓存对象进行释放。或者在不存在已缓存对象的缓存过期时间早于待缓存对象的缓存过期时间,且存在已缓存对象的缓存过期时间等于待缓存对象的缓存过期时间的情况下,根据预设缓存置换策略选取缓存过期时间等于待缓存对象的缓存过期时间的已缓存对象释放,将待缓存对象进行缓存。
在缓存区剩余空间不足的情况下,如果存在至少一个已缓存对象的缓存过期时间持续时间小早于待缓存对象的缓存过期时间持续时间,则可以利用待缓存对象置换缓存过期时间持续时间最短近的已缓存对象。进一步,在缓存过期时间持续时间最近短的已缓存对象有多个的情况下,根据预设缓存置换策略选取已缓存对象进行释放。预设缓存置换策略例如为LRU或FIFO,不限于所举示例。
如果所有已缓存对象的缓存过期时间均晚于待缓存对象的缓存过期时间,即待缓存对象的缓存过期时间最近,则可以将待缓存对象释放。如果存在已缓存对象的缓存过期时间等于待缓存对象的缓存过期时间,而且不存在已缓存对象缓存过期时间早于待缓存对象的缓存过期时间的情况,即待缓存对象和某些已缓存对象共同为缓存过期时间最近的对象,则根据预设缓存置换策略选取缓存过期时间等于待缓存对象的缓存过期时间的已缓存对象释放,将待缓存对象进行缓存。预设缓存置换策略例如为LRU或FIFO,不限于所举示例。
上述实施例的方法为待缓存对象设置缓存持续时间,进而在缓存区剩余空间不足够对待缓存对象进行缓存的情况下,根据待缓存对象的缓存过期时间和已缓存对象的缓存过期时间的比对情况,选择对待缓存对象进行缓存或释放。上述实施例的方案能够根据需求为缓存对象设置缓存持续时间,例如,可以针对访问热度高,或者将来被访问的概率高,或者对象对于提升系统性能起到关键作用的对象设置较长缓存持续时间即使在大量对象被随机访问时,缓存持续时间长的对象也不容易被置换出去。因此,本公开的方案能够提高缓存命中率,提高缓存效果,提升系统性能。
为了进一步提高缓存效率和管理效率。本公开还提供缓存控制方法的另一些实施例,下面结合图2进行描述。
图2为本公开缓存控制方法另一些实施例的流程图。如图2所示,该实施例的方法包括:步骤S202~S206。
在步骤S202中,获取待缓存对象和待缓存对象的缓存持续时间。
在步骤S204中,确定缓存区剩余空间是否足够对待缓存对象进行缓存,如果是,则执行步骤S205,否则执行步骤S206。
在步骤S205中,将待缓存对象进行缓存。
为了进一步提高缓存效率和管理效率,将缓存区划分为第一缓存区和第二缓存区,其中,第一缓存区用于对缓存持续时间为预设最低值的对象进行缓存,第二缓存区用于对缓存持续时间不为预设最低值的对象进行缓存。预设最低值例如为零。第一缓存区可以存储一些缓存持续时间较短的对象,例如根据应用需求不需要长期缓存或者对于系统性能影响不太大的对象,这些对象的缓存持续时间可以被配置为预设最低值。第一缓存区可以应用预设缓存置换策略进行缓存置换,即对缓存持续时间较短的对象仍可采用现有技术的方法进行缓存置换,例如LRU或FIFO,不限于所举示例。
第二缓存区中存储缓存持续时间较长的对象,例如根据应用需求需要长期缓存或者对于系统性能影响较大的对象,这部分对象则需要根据缓存持续时间进行缓存置换。第一缓存区和第二缓存区的划分方式也可以根据实际需求进行设计,例如,第一缓存区用于对缓存持续时间低于阈值的对象进行缓存,第而缓存区用于对缓存持续时间高于阈值的对象进行缓存。或者,缓存区也可以划分为多于两个的不同缓存区,分别用于存储缓存持续时间在不同区间的对象。缓存区划分的基本原则是将根据应用需求不同、访问热度不同、未来访问概率高低或者对于系统性能影响大小,将不同的对象进行区分存储,以便简化缓存持续时间的比对过程,提高缓存效率。
缓存区划分为第一缓存区和第二缓存区的情况,在待缓存对象的缓存持续时间为预设最低值的情况下,扩大第一缓存区空间,将待缓存对象存入第一缓存区;在待缓存对象的缓存持续时间不为预设最低值的情况下,扩大第二缓存区空间,将待缓存对象存入第二缓存区。第一缓存区和第二缓存区的空间是可以根据存储的对象动态变化的,但是两者的空间总和是可以固定的。在缓存区整体还有足够剩余空间的情况下,待缓存对象根据缓存持续时间需要存入第一缓存区则扩大第一缓存区空间,需要存入第二缓存区则扩大第二缓存区空间。
在步骤S206中,根据待缓存对象的缓存过期时间和已缓存对象的缓存过期时间的比对情况,对待缓存对象进行处理。
根据前述实施例,在存在已缓存对象的缓存过期时间早于待缓存对象的缓存过期时间的情况下,将缓存过期时间最近的已缓存对象释放,将待缓存对象进行缓存。
进一步,针对缓存区划分为第一缓存区和第二缓存区的情况,上述实施例具体为,在待缓存对象的缓存持续时间大于预设最低值,且第一缓存区不为空的情况下,根据预设缓存置换策略选取第一缓存区中的已缓存对象进行释放,扩大第二缓存区空间,将待缓存对象存入第二缓存区。或者,在待缓存对象的缓存持续时间大于预设最低值,且第一缓存区为空的情况下,选取第二缓存区中的缓存过期时间最近的已缓存对象进行释放,将待缓存对象存入第二缓存区。
根据前述实施例,在已缓存对象的缓存过期时间均晚于待缓存对象的缓存过期时间的情况下,将待缓存对象进行释放。进一步,针对缓存区划分为第一缓存区和第二缓存区的情况,已缓存对象的缓存过期时间均晚于待缓存对象的缓存过期时间的情况包括:待缓存对象的缓存持续时间为预设最低值,且第一缓存区为空的情况,或者待缓存对象的缓存持续时间不为预设最低值,且第二缓存区内的已缓存对象的缓存过期时间均晚于待缓存对象的缓存过期时间的情况。
根据前述实施例,在不存在已缓存对象的缓存过期时间早于待缓存对象的缓存过期时间,且存在已缓存对象的缓存过期时间等于待缓存对象的缓存过期时间的情况下,根据预设缓存置换策略选取缓存过期时间等于待缓存对象的缓存过期时间的已缓存对象释放,将待缓存对象进行缓存。
进一步,针对缓存区划分为第一缓存区和第二缓存区的情况,上述实施例具体为,在待缓存对象的缓存持续时间为预设最低值,且第一缓存区不为空的情况下,根据预设缓存置换策略选取第一缓存区中的已缓存对象进行释放,将待缓存对象存入第一缓存区。
如图3所示,在上述缓存区划分为第一缓存区和第二缓存区的情况下,步骤S206可以包括:步骤S2061~S2069。
在步骤S2061中,判断待缓存对象的缓存持续时间是否为预设最低值,如果是,则执行步骤S2062,否则执行步骤S2063。
预设最低值例如为零。
在步骤S2062中,判断第一缓存区是否为空,如果是,则执行步骤S2064,否则,执行步骤S2065.
在步骤S2063中,判断第一缓存区是否为空,如果是,则执行步骤S2066,否则,执行步骤S2067.
在步骤S2064中,释放待缓存对象。
在步骤S2065中,根据预设缓存置换策略选取第一缓存区中的已缓存对象进行释放,将待缓存对象存入第一缓存区。
在步骤S2066中,判断第二缓存区中是否存在已缓存对象的缓存过期时间早于待缓存对象的缓存过期时间,如果是,则执行步骤S2068,否则执行步骤S2069。
在步骤S2067中,根据预设缓存置换策略选取第一缓存区中的已缓存对象进行释放,扩大第二缓存区空间,将待缓存对象存入第二缓存区。
在步骤S2068中,选取第二缓存区中的缓存过期时间最近的已缓存对象进行释放,将待缓存对象存入第二缓存区。
在步骤S2069中,释放待缓存对象。
可选的,步骤S2069可以为判断第二缓存区中是否存在已缓存对象的缓存过期时间等于待缓存对象的缓存过期时间,如果是则根据预设缓存置换策略选取缓存过期时间等于待缓存对象的缓存过期时间的已缓存对象进行释放,将待缓存对象存入第二缓存区。否则释放待缓存对象。
上述实施例的方法,将缓存区划分为两部分,便于管理缓存对象,并且减少了时间比对过程,提高了缓存效率。
本公开还提供一种缓存控制装置,下面结合图4进行描述。
图4为本公开缓存控制装置的一些实施例的结构图。如图4所示,该实施例的装置40包括:待缓存信息获取模块402,缓存空间确定模块404,缓存控制模块406。
待缓存信息获取模块402,用于获取待缓存对象和待缓存对象的缓存持续时间。
缓存空间确定模块404,用于确定缓存区剩余空间是否足够对待缓存对象进行缓存。
缓存控制模块406,用于在缓存区剩余空间不足够对待缓存对象进行缓存的情况下,根据待缓存对象的缓存过期时间和已缓存对象的缓存过期时间的比对情况,对待缓存对象进行处理。
待缓存对象的缓存过期时间为当前时刻加上缓存持续时间,已缓存对象的缓存过期时间为缓存时刻加上缓存持续时间。
在一些实施例中,缓存控制模块406用于在存在已缓存对象的缓存过期时间早于待缓存对象的缓存过期时间的情况下,将缓存过期时间最近的已缓存对象释放,将待缓存对象进行缓存;或者在已缓存对象的缓存过期时间均晚于待缓存对象的缓存过期时间的情况下,将待缓存对象进行释放。
进一步,缓存控制模块406用于在缓存过期时间最近的已缓存对象有多个的情况下,根据预设缓存置换策略选取已缓存对象进行释放。
在一些实施例中,缓存区被划分为第一缓存区和第二缓存区,其中,第一缓存区用于对缓存持续时间为预设最低值的对象进行缓存,第二缓存区用于对缓存持续时间不为预设最低值的对象进行缓存。
进一步,缓存控制模块406用于在待缓存对象的缓存持续时间大于预设最低值,且第一缓存区不为空的情况下,根据预设缓存置换策略选取第一缓存区中的已缓存对象进行释放,扩大第二缓存区空间,将待缓存对象存入第二缓存区;或者在待缓存对象的缓存持续时间大于预设最低值,且第一缓存区为空的情况下,选取第二缓存区中的缓存过期时间最近的已缓存对象进行释放,将待缓存对象存入第二缓存区。
进一步,缓存控制模块406还用于在待缓存对象的缓存持续时间为预设最低值,且第一缓存区不为空的情况下,根据预设缓存置换策略选取第一缓存区中的已缓存对象进行释放,将待缓存对象存入第一缓存区;在待缓存对象的缓存持续时间为预设最低值,且第一缓存区为空的情况下,将待缓存对象进行释放。
在一些实施例中,缓存控制模块406还用于在缓存区剩余空间足够对待缓存对象进行缓存的情况下,将待缓存对象进行缓存。
进一步,缓存控制模块406还用于在待缓存对象的缓存持续时间为预设最低值的情况下,扩大第一缓存区空间,将待缓存对象存入第一缓存区;或者在待缓存对象的缓存持续时间不为预设最低值的情况下,扩大第二缓存区空间,将待缓存对象存入第二缓存区。
本公开的实施例中的缓存控制装置可各由各种计算设备或计算机系统来实现,下面结合图5以及图6进行描述。
图5为本公开缓存控制装置的一些实施例的结构图。如图5所示,该实施例的装置50包括:存储器510以及耦接至该存储器510的处理器520,处理器520被配置为基于存储在存储器510中的指令,执行本公开中任意一些实施例中的缓存控制方法。
其中,存储器510例如可以包括系统存储器、固定非易失性存储介质等。系统存储器例如存储有操作系统、应用程序、引导装载程序(Boot Loader)、数据库以及其他程序等。
图6为本公开缓存控制装置的另一些实施例的结构图。如图6所示,该实施例的装置60包括:存储器610以及处理器620,分别与存储器510以及处理器520类似。还可以包括输入输出接口630、网络接口640、存储接口650等。这些接口630,640,650以及存储器610和处理器620之间例如可以通过总线260连接。其中,输入输出接口630为显示器、鼠标、键盘、触摸屏等输入输出设备提供连接接口。网络接口640为各种联网设备提供连接接口,例如可以连接到数据库服务器或者云端存储服务器等。存储接口650为SD卡、U盘等外置存储设备提供连接接口。
本领域内的技术人员应当明白,本公开的实施例可提供为方法、系统、或计算机程序产品。因此,本公开可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本公开可采用在一个或多个其中包含有计算机可用程序代码的计算机可用非瞬时性存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本公开是参照根据本公开实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解为可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述仅为本公开的较佳实施例,并不用以限制本公开,凡在本公开的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。

Claims (16)

1.一种缓存控制方法,包括:
获取待缓存对象和所述待缓存对象的缓存持续时间;
确定缓存区剩余空间是否足够对所述待缓存对象进行缓存;
在缓存区剩余空间不足够对所述待缓存对象进行缓存的情况下,根据所述待缓存对象的缓存过期时间和已缓存对象的缓存过期时间的比对情况,对所述待缓存对象进行处理;
其中,所述待缓存对象的缓存过期时间为当前时刻加上缓存持续时间,所述已缓存对象的缓存过期时间为缓存时刻加上缓存持续时间。
2.根据权利要求1所述的缓存控制方法,其中,
所述根据所述待缓存对象的缓存过期时间和已缓存对象的缓存过期时间的比对情况,对所述待缓存对象进行处理包括:
在存在已缓存对象的缓存过期时间早于所述待缓存对象的缓存过期时间的情况下,将缓存过期时间最近的已缓存对象释放,将所述待缓存对象进行缓存;或者
在已缓存对象的缓存过期时间均晚于所述待缓存对象的缓存过期时间的情况下,将所述待缓存对象进行释放。
3.根据权利要求2所述的缓存控制方法,其中,
在缓存过期时间最近的已缓存对象有多个的情况下,根据预设缓存置换策略选取已缓存对象进行释放。
4.根据权利要求2所述的缓存控制方法,其中,
所述缓存区被划分为第一缓存区和第二缓存区,其中,所述第一缓存区用于对缓存持续时间为预设最低值的对象进行缓存,所述第二缓存区用于对缓存持续时间不为预设最低值的对象进行缓存;
所述在存在已缓存对象的缓存过期时间早于所述待缓存对象的缓存过期时间的情况下,将缓存过期时间最近的已缓存对象释放,将所述待缓存对象进行缓存包括:
在所述待缓存对象的缓存持续时间大于预设最低值,且所述第一缓存区不为空的情况下,根据预设缓存置换策略选取所述第一缓存区中的已缓存对象进行释放,扩大所述第二缓存区空间,将所述待缓存对象存入所述第二缓存区;或者
在所述待缓存对象的缓存持续时间大于预设最低值,且所述第一缓存区为空的情况下,选取所述第二缓存区中的缓存过期时间最近的已缓存对象进行释放,将所述待缓存对象存入所述第二缓存区。
5.根据权利要求4所述的缓存控制方法,其中,
所述根据所述待缓存对象的缓存过期时间和已缓存对象的缓存过期时间的比对情况,对所述待缓存对象进行处理还包括:
在所述待缓存对象的缓存持续时间为预设最低值,且所述第一缓存区不为空的情况下,根据预设缓存置换策略选取所述第一缓存区中的已缓存对象进行释放,将所述待缓存对象存入所述第一缓存区;
在所述待缓存对象的缓存持续时间为预设最低值,且所述第一缓存区为空的情况下,将所述待缓存对象进行释放。
6.根据权利要求1所述的缓存控制方法,还包括:
在缓存区剩余空间足够对所述待缓存对象进行缓存的情况下,将所述待缓存对象进行缓存。
7.根据权利要求6所述的缓存控制方法,其中,
所述缓存区被划分为第一缓存区和第二缓存区,其中,所述第一缓存区用于对缓存持续时间为预设最低值的对象进行缓存,所述第二缓存区用于对缓存持续时间不为预设最低值的对象进行缓存;
所述在缓存区剩余空间足够对所述待缓存对象进行缓存的情况下,将所述述待缓存对象进行缓存包括:
在所述待缓存对象的缓存持续时间为预设最低值的情况下,扩大所述第一缓存区空间,将所述待缓存对象存入所述第一缓存区;或者
在所述待缓存对象的缓存持续时间不为预设最低值的情况下,扩大所述第二缓存区空间,将所述待缓存对象存入所述第二缓存区。
8.一种缓存控制装置,包括:
待缓存信息获取模块,用于获取待缓存对象和所述待缓存对象的缓存持续时间;
缓存空间确定模块,用于确定缓存区剩余空间是否足够对所述待缓存对象进行缓存;
缓存控制模块,用于在缓存区剩余空间不足够对所述待缓存对象进行缓存的情况下,根据所述待缓存对象的缓存过期时间和已缓存对象的缓存过期时间的比对情况,对所述待缓存对象进行处理;
其中,所述待缓存对象的缓存过期时间为当前时刻加上缓存持续时间,所述已缓存对象的缓存过期时间为缓存时刻加上缓存持续时间。
9.根据权利要求8所述的缓存控制装置,其中,
所述缓存控制模块用于在存在已缓存对象的缓存过期时间早于所述待缓存对象的缓存过期时间的情况下,将缓存过期时间最近的已缓存对象释放,将所述待缓存对象进行缓存;或者在已缓存对象的缓存过期时间均晚于所述待缓存对象的缓存过期时间的情况下,将所述待缓存对象进行释放。
10.根据权利要求9所述的缓存控制装置,其中,
所述缓存控制模块用于在缓存过期时间最近的已缓存对象有多个的情况下,根据预设缓存置换策略选取已缓存对象进行释放。
11.根据权利要求9所述的缓存控制装置,其中,
所述缓存区被划分为第一缓存区和第二缓存区,其中,所述第一缓存区用于对缓存持续时间为预设最低值的对象进行缓存,所述第二缓存区用于对缓存持续时间不为预设最低值的对象进行缓存;
所述缓存控制模块用于在所述待缓存对象的缓存持续时间大于预设最低值,且所述第一缓存区不为空的情况下,根据预设缓存置换策略选取所述第一缓存区中的已缓存对象进行释放,扩大所述第二缓存区空间,将所述待缓存对象存入所述第二缓存区;或者在所述待缓存对象的缓存持续时间大于预设最低值,且所述第一缓存区为空的情况下,选取所述第二缓存区中的缓存过期时间最近的已缓存对象进行释放,将所述待缓存对象存入所述第二缓存区。
12.根据权利要求11所述的缓存控制装置,其中,
所述缓存控制模块还用于在所述待缓存对象的缓存持续时间为预设最低值,且所述第一缓存区不为空的情况下,根据预设缓存置换策略选取所述第一缓存区中的已缓存对象进行释放,将所述待缓存对象存入所述第一缓存区;在所述待缓存对象的缓存持续时间为预设最低值,且所述第一缓存区为空的情况下,将所述待缓存对象进行释放。
13.根据权利要求8所述的缓存控制装置,其中,
所述缓存控制模块还用于在缓存区剩余空间足够对所述待缓存对象进行缓存的情况下,将所述待缓存对象进行缓存。
14.根据权利要求13所述的缓存控制装置,其中,
所述缓存区被划分为第一缓存区和第二缓存区,其中,所述第一缓存区用于对缓存持续时间为预设最低值的对象进行缓存,所述第二缓存区用于对缓存持续时间不为预设最低值的对象进行缓存;
所述缓存控制模块还用于在所述待缓存对象的缓存持续时间为预设最低值的情况下,扩大所述第一缓存区空间,将所述待缓存对象存入所述第一缓存区;或者在所述待缓存对象的缓存持续时间不为预设最低值的情况下,扩大所述第二缓存区空间,将所述待缓存对象存入所述第二缓存区。
15.一种缓存控制装置,包括:
存储器;以及
耦接至所述存储器的处理器,所述处理器被配置为基于存储在所述存储器中的指令,执行如权利要求1-7任一项所述的缓存控制方法。
16.一种计算机可读存储介质,其上存储有计算机程序,其中,该程序被处理器执行时实现权利要求1-7任一项所述方法的步骤。
CN201811465473.3A 2018-12-03 2018-12-03 缓存控制方法、装置和计算机可读存储介质 Active CN111258929B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811465473.3A CN111258929B (zh) 2018-12-03 2018-12-03 缓存控制方法、装置和计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811465473.3A CN111258929B (zh) 2018-12-03 2018-12-03 缓存控制方法、装置和计算机可读存储介质

Publications (2)

Publication Number Publication Date
CN111258929A true CN111258929A (zh) 2020-06-09
CN111258929B CN111258929B (zh) 2023-09-26

Family

ID=70946926

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811465473.3A Active CN111258929B (zh) 2018-12-03 2018-12-03 缓存控制方法、装置和计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN111258929B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101887396A (zh) * 2009-05-14 2010-11-17 灰熊(北京)科技有限公司 一种实现可配置缓存的方法
CN103106153A (zh) * 2013-02-20 2013-05-15 哈尔滨工业大学 基于访问密度的web缓存替换方法
CN103514110A (zh) * 2012-06-20 2014-01-15 华为技术有限公司 非易失性存储设备的缓存管理方法及装置
CN103838680A (zh) * 2012-11-23 2014-06-04 北京四达时代软件技术股份有限公司 一种数据缓存方法和装置
US20140223107A1 (en) * 2011-09-15 2014-08-07 Telefonaktiebolaget L M Ericsson (Publ) Cache Replacement Method and System
CN106888262A (zh) * 2017-02-28 2017-06-23 北京邮电大学 一种缓存替换方法及装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101887396A (zh) * 2009-05-14 2010-11-17 灰熊(北京)科技有限公司 一种实现可配置缓存的方法
US20140223107A1 (en) * 2011-09-15 2014-08-07 Telefonaktiebolaget L M Ericsson (Publ) Cache Replacement Method and System
CN103514110A (zh) * 2012-06-20 2014-01-15 华为技术有限公司 非易失性存储设备的缓存管理方法及装置
CN103838680A (zh) * 2012-11-23 2014-06-04 北京四达时代软件技术股份有限公司 一种数据缓存方法和装置
CN103106153A (zh) * 2013-02-20 2013-05-15 哈尔滨工业大学 基于访问密度的web缓存替换方法
CN106888262A (zh) * 2017-02-28 2017-06-23 北京邮电大学 一种缓存替换方法及装置

Also Published As

Publication number Publication date
CN111258929B (zh) 2023-09-26

Similar Documents

Publication Publication Date Title
CN108009008B (zh) 数据处理方法和系统、电子设备
CN108572792B (zh) 数据存储方法、装置、电子设备及计算机可读存储介质
CN110287044B (zh) 无锁共享内存处理方法、装置、电子设备及可读存储介质
US9430388B2 (en) Scheduler, multi-core processor system, and scheduling method
CN103098014B (zh) 存储系统
EP3229142B1 (en) Read cache management method and device based on solid state drive
US8719237B2 (en) Method and apparatus for deleting duplicate data
CN109614377A (zh) 分布式文件系统的文件删除方法、装置、设备及存储介质
US11150949B2 (en) Resource release method, resource allocation method, devices, and computer program products
CN107430551B (zh) 数据缓存方法、存储控制装置、及存储设备
US8898677B2 (en) Data arrangement calculating system, data arrangement calculating method, master unit and data arranging method
CN105843819B (zh) 一种数据导出方法及装置
CN109086141B (zh) 内存管理方法和装置以及计算机可读存储介质
CN101661486A (zh) 对包含虚拟机的宿主机硬盘进行碎片整理的方法和系统
CN109582649B (zh) 一种元数据存储方法、装置、设备及可读存储介质
CN111966938B (zh) 一种实现云平台前端页面加载速度提升的配置方法及系统
CN110245129B (zh) 一种分布式全局数据去重方法和装置
US9021208B2 (en) Information processing device, memory management method, and computer-readable recording medium
CN105574008B (zh) 应用于分布式文件系统的任务调度方法和设备
US9858204B2 (en) Cache device, cache system, and cache method
CN112835511B (zh) 分布式存储集群的数据写入方法、装置、设备和介质
EP3293625B1 (en) Method and device for accessing file, and storage system
CN110554914B (zh) 资源锁管理方法、装置、服务器及存储介质
JP5776813B2 (ja) マルチコアプロセッサシステム、マルチコアプロセッサシステムの制御方法および制御プログラム
CN111258929B (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
GR01 Patent grant
GR01 Patent grant