CN111176560A - 一种缓存管理方法、装置、计算机设备及存储介质 - Google Patents
一种缓存管理方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN111176560A CN111176560A CN201911298945.5A CN201911298945A CN111176560A CN 111176560 A CN111176560 A CN 111176560A CN 201911298945 A CN201911298945 A CN 201911298945A CN 111176560 A CN111176560 A CN 111176560A
- Authority
- CN
- China
- Prior art keywords
- cache
- content
- access
- determining
- time
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明公开了一种缓存管理方法、装置、计算机设备及存储介质,其中,缓存管理方法包括:当接收到对缓存中缓存内容的访问请求时,确定所述缓存内容对应的访问时间和访问次数;确定所述访问次数与所述缓存中缓存内容对应的最大访问次数的比值,得到所述缓存内容对应的访问频率;当满足缓存淘汰条件时,根据所述缓存中每个缓存内容对应的所述访问时间和访问频率,确定每个缓存内容的热度值;根据所述缓存中每个缓存内容的热度值确定待淘汰的缓存内容;将所述待淘汰的缓存内容从所述缓存中删除。本发明将时间维度和访问频率维度相结合来综合考虑待淘汰的缓存内容,使得待淘汰的缓存内容确定的更加准确,避免了缓存的污染,提高了缓存的命中率。
Description
技术领域
本发明涉及计算机技术领域,特别涉及一种缓存管理方法、装置、计算机设备及存储介质。
背景技术
缓存(Cache)是介于中央处理器(Central Processing Unit,CPU)和主存之间的小容量存储器,存取速度比主存快,接近CPU。它能高速地向CPU提供指令和数据,提高程序的执行速度。Cache技术是为了解决CPU和主存之间速度不匹配而采用的一项重要技术。
相关技术中,当缓存空间被完成占用即缓存满时需要对缓存中的一些缓存内容进行淘汰,以释放出部分缓存空间。然而相关技术在进行缓存内容的淘汰时,对待淘汰的缓存内容的确定不够准确,从而导致缓存污染情况比较严重,降低了缓存的命中率,进而严重影响了对数据的访问速度。
发明内容
为了解决现有技术的问题,本发明实施例提供了一种缓存管理方法、装置、计算机设备及存储介质。所述技术方案如下:
一方面,提供了一种缓存管理方法,所述方法包括:
当接收到对缓存中缓存内容的访问请求时,确定所述缓存内容对应的访问时间和访问次数;
确定所述访问次数与所述缓存中缓存内容对应的最大访问次数的比值,得到所述缓存内容对应的访问频率;
当满足缓存淘汰条件时,根据所述缓存中每个缓存内容对应的所述访问时间和访问频率,确定每个缓存内容的热度值;
根据所述缓存中每个缓存内容的热度值确定待淘汰的缓存内容;
将所述待淘汰的缓存内容从所述缓存中删除。
另一方面,提供了一种缓存管理装置,所述装置包括:
第一确定模块,用于当接收到对缓存中缓存内容的访问请求时,确定所述缓存内容对应的访问时间和访问次数;
访问频率确定模块,用于确定所述访问次数与所述缓存中缓存内容对应的最大访问次数的比值,得到所述缓存内容对应的访问频率;
热度确定模块,用于在满足缓存淘汰条件时,根据所述缓存中每个缓存内容对应的所述访问时间和访问频率,确定每个缓存内容的热度值;
第二确定模块,用于根据所述缓存中每个缓存内容的热度值确定待淘汰的缓存内容;
淘汰模块,用于将所述待淘汰的缓存内容从所述缓存中删除。
可选的,所述热度确定模块包括:
第三确定模块,用于在满足缓存淘汰条件时,针对所述缓存中的每个缓存内容,确定当前时间与所述缓存内容对应的访问时间之间的时间差值;
第一归一化模块,用于对所述时间差值进行归一化处理,得到归一时间值;
第二归一化模块,用于对所述缓存内容对应的访问频率进行归一化处理,得到归一频率值;
热度计算模块,用于根据预置时间权值和预置频率权值,对所述归一时间值和归一频率值进行加权求和,将所述加权求和的结果作为所述缓存内容的热度值。
可选的,第二确定模块包括:
第四确定模块,用于确定所述缓存中热度值最小的缓存内容;将所述热度值最小的缓存内容作为所述待淘汰的缓存内容。
可选的,所述装置还包括:
接收模块,用于待访问内容的访问请求;
判断模块,用于判断所述缓存中是否存在与所述待访问内容相匹配的缓存内容;若存在,则执行所述确定所述缓存内容对应的访问时间和访问次数;
写入模块,用于在第一判断模块的判断结果为不存在时,获取所述待访问内容,将所述待访问内容写入所述缓存中,初始化所述待访问内容的访问时间,以及所述待访问内容的访问次数和访问频率。
可选的,所述装置还包括:
第一记录模块,用于采用第一链表记录所述缓存中缓存内容的访问时间;采用第二链表记录所述缓存中缓存内容访问频率;
所述热度确定模块,具体用于:当满足缓存淘汰条件时,针对所述缓存中每个缓存内容,从所述第一链表中获取与所述缓存内容相匹配的访问时间,从所述第二链表中获取与所述缓存内容相匹配的访问频率;根据从所述第一链表获取的访问时间和从所述第二链表获取的访问频率,确定所述缓存内容的热度值。
可选的,所述装置还包括:
第二记录模块,用于采用第三链表记录所述缓存中缓存内容的访问时间和访问频率;所述第三链表中链表项与所述缓存中的缓存内容一一对应,每个链表项纪录对应缓存内容的访问时间和访问频率。
可选的,所述热度确定模块,具体还可以用于:当满足缓存淘汰条件时,针对所述第三链表中的每个链表项,获取所述链表项中记录的访问时间和访问频率;根据所述访问时间和访问频率确定所述链表项对应的缓存内容的热度值。
另一方面,提供了一种计算机设备,包括处理器和存储器,所述存储器中存储有至少一条指令或至少一段程序,所述至少一条指令或所述至少一段程序由所述处理器加载并执行以实现上述缓存管理方法。
另一方面,提供了一种计算机可读存储介质,所述计算机存储介质中存储有至少一条指令或至少一段程序,所述至少一条指令或所述至少一段程序由处理器加载并执行以实现如上述的缓存管理方法。
本发明实施例通过确定缓存中缓存内容的访问时间和访问频率,并在满足缓存淘汰条件时,根据每个缓存内容对应的访问时间和访问频率确定该缓存内容的热度值,进而根据热度值确定待淘汰的缓存内容,并将该待淘汰的缓存内容从缓存中删除,上述方案将时间维度和访问频率维度相结合来综合考虑待淘汰的缓存内容,使得待淘汰的缓存内容确定的更加准确,避免了缓存的污染,大大提高了缓存的命中率,以及对数据的访问速度。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种缓存管理方法的流程示意图;
图2是本发明实施例提供的另一种缓存管理方法的流程示意图;
图3(a)是本发明实施例提供的采用第一链表记录缓存中各缓存内容的访问时间的一个可选示例的示意图;
图3(b)是本发明实施例提供的采用第二链表记录缓存中各缓存内容的访问频率的一个可选示例的示意图;
图3(c)是本发明实施例提供的采用第三链表记录缓存中各缓存内容的访问时间和访问频率的一个可选示例的示意图。
图4是本发明实施例提供的一种缓存管理装置的结构示意图;
图5是本发明实施例提供的一种计算机设备的硬件结构框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或服务器不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
请参阅图1,其所示为本发明实施例提供的一种缓存管理方法的流程示意图,该缓存管理方法可以应用于任何缓存相关的计算机设备,该计算机设备可以是终端、服务器或者其他的嵌入式设备。其中,终端可以但不限于包括智能手机、台式电脑、平板电脑、笔记本电脑等具有各种操作系统的设备。服务器可以是一个独立运行的服务器,也可以是由多个服务器组成的服务器集群,例如,服务器可以是内容分发网络(Content DeliveryNetwork,CDN)中的边缘节点。
需要说明的是,本说明书提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的劳动可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的系统或产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境)。具体的如图1所示,所述方法可以包括:
S101,当接收到对缓存中缓存内容的访问请求时,确定所述缓存内容对应的访问时间和访问次数。
其中,缓存内容对应的访问时间是指对该缓存内容最后一次访问时的系统时间,即当对缓存中某个缓存内容进行访问即读取时,获取系统的当前时间,并将该缓存内容的访问时间更新为上述当前时间。缓存内容对应的访问次数是指从该缓存内容写入缓存的写入时间至上述当前时间的时间段内的所有访问的次数之和。可以理解的,缓存中的缓存内容每被访问一次,被访问的缓存内容的访问时间和访问次数即更新一次,具体的为访问时间更新为被访问时系统的当前时间,访问次数则加1。
S103,确定所述访问次数与所述缓存中缓存内容对应的最大访问次数的比值,得到所述缓存内容对应的访问频率。
具体的,确定所有缓存内容对应的访问次数中的最大访问次数,然后计算当前被访问的缓存内容的访问次数与最大访问次数的比值,从而得到当前被访问的缓存内容在当前时间的访问频率。
实际应用中,并不是每次的访问请求都能命中缓存,因此,在步骤S101之前,如图2所示,该方法还可以包括:
S201,接收待访问内容的访问请求。
S203,判断所述缓存中是否存在与所述待访问内容相匹配的缓存内容。
具体的,若缓存中存在与待访问内容相匹配的缓存内容,则表明命中缓存,可以直接对缓存中匹配的缓存内容进行访问即读取缓存中该匹配的缓存内容,实现对缓存中该缓存内容的一次访问,可以执行步骤S101;若缓存中不存在与待访问内容相匹配的缓存内容,则表明没有命中缓存,此时可以执行步骤S205。
S205,获取所述待访问内容,将所述待访问内容写入所述缓存中,初始化所述待访问内容的访问时间,以及所述待访问内容的访问次数和访问频率。
具体的,当没有命中缓存时,可以从主存获取待访问内容,然后将待访问内容写入到缓存中,并完成对缓存中该待访问内容的访问时间、访问次数和访问频率的初始化,该初始化可以包括将该待访问内容的访问时间设置为写入时系统的当前时间,将待访问内容的访问次数设置为1,同时获取写入时缓存中缓存内容对应的最大访问次数,计算1与该最大访问次数的比值得到待访问内容初始化的访问频率。
作为一个可选的实施方式,可以通过维护两个链表即第一链表和第二链表来分别记录缓存中每个缓存内容的访问时间,以及访问次数和访问频率,例如,可以采用第一链表记录缓存中缓存内容的访问时间,采用第二链表记录缓存中缓存内容的访问次数和访问频率。
具体的,可以按照访问时间距离系统的当前时间的远近按序将各个缓存内容的访问时间记录在第一链表中。例如,可以将距离当前时间最近的缓存内容的访问时间记录在第一链表的头部,将距离当前时间最远的缓存内容的访问时间记录在第一链表的尾部,第一链表的头部至尾部之间的部位则按照距离当前时间由近至远记录剩余缓存内容的访问时间。当命中缓存时,更新第一链表中被访问的缓存内容的访问时间,并将被访问的缓存内容的访问时间的存储位置移动到第一链表的头部。当待访问内容被写入到缓存中时,可以直接将该待访问内容的初始化访问时间记录在第一链表的头部。
如图3(a)是采用第一链表记录缓存中各缓存内容的访问时间的一个可选示例的示意图,每一个链表项与一个缓存内容相对应,该第一链表的头部记录的为距离当前时间最近的缓存内容的访问时间Time-1,该第一链表的尾部记录的为距离放弃时间最远的缓存内容的访问时间Time-n,中间部位则按访问时间距离当前时间由近至远从头部向尾部排列,其中,1……n是缓存内容的编号,通过该编号可以唯一确定缓存中的一个缓存内容。
具体的,可以按照访问次数的大小按序将各个缓存内容的访问次数和访问频率记录在第二链表中。例如,可以将访问次数最大的缓存内容的访问次数和访问频率记录在第二链表的尾部,将访问次数最小的缓存内容的访问次数和访问频率记录在第二链表的头部,第二链表的尾部至头部之间的部位则按照访问次数由大至小记录剩余缓存内容的访问次数和访问频率,当访问次数相同时按照相应缓存内容在第一链表中的排序确定其在第二链表中的排序。当命中缓存时,更新第二链表中被访问的缓存内容的访问次数和访问频率,并按照访问次数重新排序更新各个缓存内容的访问次数和访问频率在第二链表的存储位置。
如图3(b)是采用第二链表记录缓存中各缓存内容的访问频率的一个可选示例的示意图,每一个链表项与一个缓存内容相对应,该第二链表的头部记录的为最小访问频率的缓存内容的访问频率freq-1,该第二链表的尾部记录的为最大访问频率的缓存内容的访问频率freq-n,中间部位则按访问频率由小至大从头部向尾部排列,其中,1……n是缓存内容的编号,通过该编号可以唯一确定缓存中的一个缓存内容。
作为另一个可选的实施方式,可以通过只维护一个链表即第三链表来同时记录缓存中每个缓存内容的访问时间和访问频率,当然,还可以记录访问次数,该第三链表中的链表项与缓存中的缓存内容一一对应,即在一个链表项中同时记录对应缓存内容的访问时间和访问频率,当然还可以记录访问次数。采用一个链表进行记录可以提高后续对待淘汰的缓存内容的确认效率,缩短耗时。如图3(c)是采用第三链表记录缓存中各缓存内容的访问时间和访问频率的一个可选示例的示意图,每一个链表项与一个缓存内容相对应,该链表可以按照访问时间距离系统的当前时间的远近按序存储相应的数据,也可以按照访问频率的大小按序存储相应的数据,同样,其中1……n是缓存内容的编号,通过该编号可以唯一确定缓存中的一个缓存内容。
需要说明的是,上述第一链表、第二链表和第三链表只是记录访问时间和访问频率的一种实现形式,实际应用中还可以采用其它形式来实现访问时间和访问频率的记录,例如可以采用堆与基于哈希表的Map接口(HashMap)相结合的方案来实现,HashMap根据键的哈希码值存储数据,根据键可以直接获取它的值,具有很快的访问速度。
S105,当满足缓存淘汰条件时,根据所述缓存中每个缓存内容对应的所述访问时间和访问频率,确定每个缓存内容的热度值。
实际应用中,在执行步骤S105时可以结合访问时间、访问频率的存储链表进行。当采用第一链表记录所述缓存中缓存内容的访问时间,采用第二链表记录所述缓存中缓存内容的访问频率时,可以在满足缓存淘汰条件时,针对所述缓存中每个缓存内容,从所述第一链表中获取与所述缓存内容相匹配的访问时间,从所述第二链表中获取与所述缓存内容相匹配的访问频率,然后根据从所述第一链表获取的访问时间和从所述第二链表获取的访问频率,确定所述缓存内容的热度值。当采用第三链表记录所述缓存中缓存内容的访问时间和访问频率时,可以在满足缓存淘汰条件时,针对所述第三链表中的每个链表项,获取所述链表项中记录的访问时间和访问频率;根据所述访问时间和访问频率确定所述链表项对应的缓存内容的热度值。
其中,缓存淘汰条件可以是缓存的剩余存储空间小于预设存储空间阈值,该预设存储空间阈值可以根据实际需要来设定,预设存储空间阈值可以设置为0,也可以设置为其他的正数。当然,缓存淘汰条件还可以是缓存的剩余存储空间小于待写入缓存的数据的大小,也就是说,当有待访问内容需要写入到缓存时,分别获取待访问内容的数据大小,以及缓存的剩余存储空间,将二者进行比对,若缓存的剩余存储空间小于将写入的待访问内容,则确定满足缓存淘汰条件。
作为一个可选的实施方式,在满足缓存淘汰条件,根据缓存中每个缓存内容对应的访问时间和访问频率确定每个缓存内容的热点值时,可以包括以下步骤:
(1)当满足缓存淘汰条件时,针对缓存中的每个缓存内容,确定当前时间与缓存内容对应的访问时间之间的时间差值。
其中,当前时间为确定满足缓存淘汰条件时的系统的当前时间。
(2)对所述时间差值进行归一化处理,得到归一时间值。
为了消除数据之间的量纲影响,本说明书实施例对时间差值进行了归一化处理,以将时间差值映射到[0,1]之间,具体的,可以采用以下公式来计算归一时间值:exp(exp(-0.01*diff)-1),其中,diff即为时间差值。
可以理解的,上述只是对时间差值进行归一化处理的一种算法示例,实际应用中还可以采用其他的归一化处理算法以将时间差值映射到[0,1]之间。
(3)对所述缓存内容对应的访问频率进行归一化处理,得到归一频率值。
本说明书实施例中,为了使得待淘汰的缓存内容确定的更加准确,对于访问频率也进行了归一化处理,此处的归一化处理是判断访问频率是否大于预设频率阈值,若大于,则直接将访问频率确定为1,其中,预设频率阈值的取值范围为[0.5,1],优选的,该预设频率阈值的范围为0.9~1。
(4)根据预置时间权值和预置频率权值,对所述归一时间值和归一频率值进行加权求和,将所述加权求和的结果作为所述缓存内容的热度值。
其中,预置时间权值和预置频率权值可以实际需要或者历史经验进行设定,二者可以相同也可以不同,预置时间权值与预置频率权值的和为1,例如,可以将预置时间权值与设定为0.5,则预置频率权值也为0.5。即缓存内容的热度值可以通过以下公式计算:
Hi=w1*Ti+w2*Fi
其中,w1表示预置时间权值,w2表示预置频率权值,w1+w2=1;i表示缓存内容i;Ti表示缓存内容i的归一时间值,Fi表示缓存内容i的归一频率值。
S107,根据所述缓存中每个缓存内容的热度值确定待淘汰的缓存内容。
作为一个可选的实施方式,可以确定缓存中热度值最小的缓存内容,将该热度值最小的缓存内容作为待淘汰的缓存内容。
作为另一个可选的实施方式,在确定待淘汰的缓存内存时还可以结合具体的缓存淘汰条件,若缓存淘汰条件是基于缓存的剩余存储空间小于待写入缓存的数据的大小时,可以先根据热度值对缓存中的缓存内容进行排序,确定排序靠后的缓存内容的数据大小,然后根据待写入缓存的数据的大小从排序靠后的缓存内容中选取待淘汰的缓存内容,使得待淘汰的缓存内容的数据总和不小于待写入缓存的数据的大小。
S109,将所述待淘汰的缓存内容从所述缓存中删除。
由本发明实施例的上述技术方案可见,本发明实施例通过确定缓存中缓存内容的访问时间和访问频率,并在满足缓存淘汰条件时,根据每个缓存内容对应的访问时间和访问频率确定该缓存内容的热度值,进而根据热度值确定待淘汰的缓存内容,并将该待淘汰的缓存内容从缓存中删除,上述方案将时间维度和访问频率维度相结合来综合考虑待淘汰的缓存内容,使得待淘汰的缓存内容确定的更加准确,避免了单独考虑时间维度所导致的周期性或者偶发性的操作引起的缓存命中率的下降,以及单独考虑访问频率维度所导致的历史数据对将来数据的“缓存污染”效用,大大提高了缓存的命中率和对数据的访问速度,特别是最近经常访问的数据,比那些冷门数据访问的速度要快,比如,查看热点的资讯,视频等。
与上述几种实施例提供的缓存管理方法相对应,本发明实施例还提供一种缓存管理装置,由于本发明实施例提供的缓存管理装置与上述几种实施例提供的缓存管理方法相对应,因此前述缓存管理方法的实施方式也适用于本实施例提供的缓存管理装置,在本实施例中不再详细描述。
请参阅图4,其所示为本发明实施例提供的一种缓存管理装置的结构示意图,该装置具有实现上述方法实施例中缓存管理方法的功能,所述功能可以由硬件实现,也可以由硬件执行相应的软件实现。如图4所示,该装置可以包括:
第一确定模块410,用于当接收到对缓存中缓存内容的访问请求时,确定所述缓存内容对应的访问时间和访问次数;
访问频率确定模块420,用于确定所述访问次数与所述缓存中缓存内容对应的最大访问次数的比值,得到所述缓存内容对应的访问频率;
热度确定模块430,用于在满足缓存淘汰条件时,根据所述缓存中每个缓存内容对应的所述访问时间和访问频率,确定每个缓存内容的热度值;
第二确定模块440,用于根据所述缓存中每个缓存内容的热度值确定待淘汰的缓存内容;
淘汰模块450,用于将所述待淘汰的缓存内容从所述缓存中删除。
作为一个可选的实施方式,热度确定模块430可以包括:
第三确定模块,用于在满足缓存淘汰条件时,针对所述缓存中的每个缓存内容,确定当前时间与所述缓存内容对应的访问时间之间的时间差值;
第一归一化模块,用于对所述时间差值进行归一化处理,得到归一时间值;
第二归一化模块,用于对所述缓存内容对应的访问频率进行归一化处理,得到归一频率值;
热度计算模块,用于根据预置时间权值和预置频率权值,对所述归一时间值和归一频率值进行加权求和,将所述加权求和的结果作为所述缓存内容的热度值。
作为一个可选的实施方式,第二确定模块可以包括:
第四确定模块,用于确定所述缓存中热度值最小的缓存内容;将所述热度值最小的缓存内容作为所述待淘汰的缓存内容。
作为一个可选的实施方式,所述装置还可以包括:
接收模块,用于待访问内容的访问请求;
判断模块,用于判断所述缓存中是否存在与所述待访问内容相匹配的缓存内容;若存在,则执行所述确定所述缓存内容对应的访问时间和访问次数;
写入模块,用于在判断模块的判断结果为不存在时,获取所述待访问内容,将所述待访问内容写入所述缓存中,初始化所述待访问内容的访问时间,以及所述待访问内容的访问次数和访问频率。
作为一个可选的实施方式,所述装置还可以包括:
第一记录模块,用于采用第一链表记录所述缓存中缓存内容的访问时间;采用第二链表记录所述缓存中缓存内容访问频率;
相应的,热度确定模块430,具体可以用于:当满足缓存淘汰条件时,针对所述缓存中每个缓存内容,从所述第一链表中获取与所述缓存内容相匹配的访问时间,从所述第二链表中获取与所述缓存内容相匹配的访问频率;根据从所述第一链表获取的访问时间和从所述第二链表获取的访问频率,确定所述缓存内容的热度值。
作为一个可选的实施方式,所述装置还可以包括:
第二记录模块,用于采用第三链表记录所述缓存中缓存内容的访问时间和访问频率;所述第三链表中链表项与所述缓存中的缓存内容一一对应,每个链表项纪录对应缓存内容的访问时间和访问频率。
相应的,热度确定模块430,具体还可以用于:当满足缓存淘汰条件时,针对所述第三链表中的每个链表项,获取所述链表项中记录的访问时间和访问频率;根据所述访问时间和访问频率确定所述链表项对应的缓存内容的热度值。
需要说明的是,上述实施例提供的装置,在实现其功能时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的装置与方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
本发明实施例的缓存管理装置通过确定缓存中缓存内容的访问时间和访问频率,并在满足缓存淘汰条件时,根据每个缓存内容对应的访问时间和访问频率确定该缓存内容的热度值,进而根据热度值确定待淘汰的缓存内容,并将该待淘汰的缓存内容从缓存中删除,上述方案将时间维度和访问频率维度相结合来综合考虑待淘汰的缓存内容,使得待淘汰的缓存内容确定的更加准确,避免了缓存的污染,大大提高了缓存的命中率,以及对数据的访问速度。
本发明实施例提供了一种计算机设备,该计算机设备包括处理器和存储器,该存储器中存储有至少一条指令或至少一段程序,该至少一条指令或该至少一段程序由该处理器加载并执行以实现如上述方法实施例所提供的缓存管理方法。
存储器可用于存储软件程序以及模块,处理器通过运行存储在存储器的软件程序以及模块,从而执行各种功能应用以及缓存管理。存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、功能所需的应用程序等;存储数据区可存储根据所述设备的使用所创建的数据等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器还可以包括存储器控制器,以提供处理器对存储器的访问。
本发明实施例所提供的方法实施例可以在计算机终端、服务器或者类似的运算装置中执行,即上述计算机设备可以包括计算机终端、服务器或者类似的运算装置。图5是本发明实施例提供的运行一种缓存管理方法的计算机设备的硬件结构框图,如图5所示,该计算机设备的内部结构可包括但不限于:处理器、网络接口及存储器。其中,计算机设备内的处理器、网络接口及存储器可通过总线或其他方式连接,在本说明书实施例所示图5中以通过总线连接为例。
其中,处理器(或称CPU(Central Processing Unit,中央处理器))是计算机设备的计算核心以及控制核心。网络接口可选的可以包括标准的有线接口、无线接口(如WI-FI、移动通信接口等)。存储器(Memory)是计算机设备中的记忆设备,用于存放程序和数据。可以理解的是,此处的存储器可以是高速RAM存储设备,也可以是非不稳定的存储设备(non-volatile memory),例如至少一个磁盘存储设备;可选的还可以是至少一个位于远离前述处理器的存储装置。存储器提供存储空间,该存储空间存储了电子设备的操作系统,可包括但不限于:Windows系统(一种操作系统),Linux(一种操作系统),Android(安卓,一种移动操作系统)系统、IOS(一种移动操作系统)系统等等,本发明对此并不作限定;并且,在该存储空间中还存放了适于被处理器加载并执行的一条或一条以上的指令,这些指令可以是一个或一个以上的计算机程序(包括程序代码)。在本说明书实施例中,处理器加载并执行存储器中存放的一条或一条以上指令,以实现上述方法实施例提供的缓存管理方法。
本领域普通技术人员可以理解,图5所示的结构仅为示意,其并不对上述计算机设备的结构造成限定。例如,计算机设备500还可包括比图5中所示更多或者更少的组件,或者具有与图5所示不同的配置。
本发明的实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质可设置于计算机设备之中以保存用于实现一种缓存管理方法相关的至少一条指令或至少一段程序,该至少一条指令或该至少一段程序由该处理器加载并执行以实现上述方法实施例提供的缓存管理方法。
可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
需要说明的是:上述本发明实施例先后顺序仅仅为了描述,不代表实施例的优劣。且上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种缓存管理方法,其特征在于,所述方法包括:
当接收到对缓存中缓存内容的访问请求时,确定所述缓存内容对应的访问时间和访问次数;
确定所述访问次数与所述缓存中缓存内容对应的最大访问次数的比值,得到所述缓存内容对应的访问频率;
当满足缓存淘汰条件时,根据所述缓存中每个缓存内容对应的所述访问时间和访问频率,确定每个缓存内容的热度值;
根据所述缓存中每个缓存内容的热度值确定待淘汰的缓存内容;
将所述待淘汰的缓存内容从所述缓存中删除。
2.根据权利要求1所述的缓存管理方法,其特征在于,所述当满足缓存淘汰条件时,根据所述缓存中每个缓存内容对应的所述访问时间和访问频率,确定每个缓存内容的热度值包括:
当满足缓存淘汰条件时,针对所述缓存中的每个缓存内容,确定当前时间与所述缓存内容对应的访问时间之间的时间差值;
对所述时间差值进行归一化处理,得到归一时间值;
对所述缓存内容对应的访问频率进行归一化处理,得到归一频率值;
根据预置时间权值和预置频率权值,对所述归一时间值和归一频率值进行加权求和,将所述加权求和的结果作为所述缓存内容的热度值。
3.根据权利要求1所述的缓存管理方法,其特征在于,所述根据所述缓存中每个缓存内容的热度值确定待淘汰的缓存内容包括:
确定所述缓存中热度值最小的缓存内容;
将所述热度值最小的缓存内容作为所述待淘汰的缓存内容。
4.根据权利要求1所述的缓存管理方法,其特征在于,在当接收到对缓存中缓存内容的访问请求时,确定所述缓存内容对应的访问时间和访问次数之前,所述方法还包括:
接收待访问内容的访问请求;
判断所述缓存中是否存在与所述待访问内容相匹配的缓存内容;
若存在,则执行所述确定所述缓存内容对应的访问时间和访问次数;
若不存在,则获取所述待访问内容,将所述待访问内容写入所述缓存中,初始化所述待访问内容的访问时间,以及所述待访问内容的访问次数和访问频率。
5.根据权利要求1所述的缓存管理方法,其特征在于,所述方法还包括:
采用第一链表记录所述缓存中缓存内容的访问时间;采用第二链表记录所述缓存中缓存内容的访问频率;
所述当满足缓存淘汰条件时,根据所述缓存中每个缓存内容对应的所述访问时间和访问频率,确定每个缓存内容的热度值包括:
当满足缓存淘汰条件时,针对所述缓存中每个缓存内容,从所述第一链表中获取与所述缓存内容相匹配的访问时间,从所述第二链表中获取与所述缓存内容相匹配的访问频率;
根据从所述第一链表获取的访问时间和从所述第二链表获取的访问频率,确定所述缓存内容的热度值。
6.根据权利要求1所述的缓存管理方法,其特征在于,所述方法还包括:采用第三链表记录所述缓存中缓存内容的访问时间和访问频率;所述第三链表中链表项与所述缓存中的缓存内容一一对应,每个链表项纪录对应缓存内容的访问时间和访问频率。
7.根据权利要求6所述的缓存管理方法,其特征在于,所述当满足缓存淘汰条件时,根据所述缓存中每个缓存内容对应的所述访问时间和访问频率,确定每个缓存内容的热度值包括:
当满足缓存淘汰条件时,针对所述第三链表中的每个链表项,获取所述链表项中记录的访问时间和访问频率;
根据所述访问时间和访问频率确定所述链表项对应的缓存内容的热度值。
8.一种缓存管理装置,其特征在于,所述装置包括:
第一确定模块,用于当接收到对缓存中缓存内容的访问请求时,确定所述缓存内容对应的访问时间和访问次数;
访问频率确定模块,用于确定所述访问次数与所述缓存中缓存内容对应的最大访问次数的比值,得到所述缓存内容对应的访问频率;
热度确定模块,用于在满足缓存淘汰条件时,根据所述缓存中每个缓存内容对应的所述访问时间和访问频率,确定每个缓存内容的热度值;
第二确定模块,用于根据所述缓存中每个缓存内容的热度值确定待淘汰的缓存内容;
淘汰模块,用于将所述待淘汰的缓存内容从所述缓存中删除。
9.一种计算机设备,其特征在于,包括处理器和存储器,所述存储器中存储有至少一条指令或至少一段程序,所述至少一条指令或所述至少一段程序由所述处理器加载并执行以实现如权利要求1~7中任一项所述的缓存管理方法。
10.一种计算机可读存储介质,所述存储介质中存储有至少一条指令或至少一段程序,所述至少一条指令或所述至少一段程序由处理器加载并执行以实现如权利要求1~7任一项所述的缓存管理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911298945.5A CN111176560B (zh) | 2019-12-17 | 2019-12-17 | 一种缓存管理方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911298945.5A CN111176560B (zh) | 2019-12-17 | 2019-12-17 | 一种缓存管理方法、装置、计算机设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111176560A true CN111176560A (zh) | 2020-05-19 |
CN111176560B CN111176560B (zh) | 2022-02-18 |
Family
ID=70656593
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911298945.5A Active CN111176560B (zh) | 2019-12-17 | 2019-12-17 | 一种缓存管理方法、装置、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111176560B (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112015679A (zh) * | 2020-08-07 | 2020-12-01 | 苏州浪潮智能科技有限公司 | 一种基于访问频率的缓存优化方法及系统 |
CN112052097A (zh) * | 2020-10-15 | 2020-12-08 | 腾讯科技(深圳)有限公司 | 虚拟场景的渲染资源处理方法、装置、设备及存储介质 |
CN112084204A (zh) * | 2020-09-10 | 2020-12-15 | 北京百度网讯科技有限公司 | 浏览数据处理方法、装置、终端及存储介质 |
CN112487029A (zh) * | 2020-11-11 | 2021-03-12 | 杭州电魂网络科技股份有限公司 | 渐进式缓存淘汰方法、装置、电子设备和存储介质 |
CN112559572A (zh) * | 2020-12-22 | 2021-03-26 | 上海悦易网络信息技术有限公司 | 一种用于Key-Value缓存系统数据缓存预热的方法及设备 |
CN112650720A (zh) * | 2020-12-18 | 2021-04-13 | 深圳市佳创视讯技术股份有限公司 | 一种缓存系统管理方法、装置及计算机可读存储介质 |
CN112667530A (zh) * | 2020-12-31 | 2021-04-16 | 联想(北京)有限公司 | 一种数据缓存方法及装置 |
CN113076067A (zh) * | 2021-04-16 | 2021-07-06 | 北京沃东天骏信息技术有限公司 | 淘汰缓存数据的方法和装置 |
CN113806389A (zh) * | 2021-09-22 | 2021-12-17 | 未鲲(上海)科技服务有限公司 | 一种数据处理方法、装置、计算设备与存储介质 |
CN114416800A (zh) * | 2022-01-24 | 2022-04-29 | 深圳小鹅网络技术有限公司 | 热点缓存过期淘汰方法、装置、计算机设备和存储介质 |
CN116339643A (zh) * | 2023-05-26 | 2023-06-27 | 苏州浪潮智能科技有限公司 | 一种磁盘阵列的格式化方法、装置、设备和介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130111146A1 (en) * | 2011-10-31 | 2013-05-02 | International Business Machines Corporation | Selective population of secondary cache employing heat metrics |
CN104111900A (zh) * | 2013-04-22 | 2014-10-22 | 中国移动通信集团公司 | 一种缓存中数据替换方法及装置 |
CN107451071A (zh) * | 2017-08-04 | 2017-12-08 | 郑州云海信息技术有限公司 | 一种缓存置换方法及系统 |
CN109284236A (zh) * | 2018-08-28 | 2019-01-29 | 北京三快在线科技有限公司 | 数据预热方法、装置、电子设备及存储介质 |
CN109582233A (zh) * | 2018-11-21 | 2019-04-05 | 网宿科技股份有限公司 | 一种数据的缓存方法和装置 |
-
2019
- 2019-12-17 CN CN201911298945.5A patent/CN111176560B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130111146A1 (en) * | 2011-10-31 | 2013-05-02 | International Business Machines Corporation | Selective population of secondary cache employing heat metrics |
CN104111900A (zh) * | 2013-04-22 | 2014-10-22 | 中国移动通信集团公司 | 一种缓存中数据替换方法及装置 |
CN107451071A (zh) * | 2017-08-04 | 2017-12-08 | 郑州云海信息技术有限公司 | 一种缓存置换方法及系统 |
CN109284236A (zh) * | 2018-08-28 | 2019-01-29 | 北京三快在线科技有限公司 | 数据预热方法、装置、电子设备及存储介质 |
CN109582233A (zh) * | 2018-11-21 | 2019-04-05 | 网宿科技股份有限公司 | 一种数据的缓存方法和装置 |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112015679A (zh) * | 2020-08-07 | 2020-12-01 | 苏州浪潮智能科技有限公司 | 一种基于访问频率的缓存优化方法及系统 |
CN112084204A (zh) * | 2020-09-10 | 2020-12-15 | 北京百度网讯科技有限公司 | 浏览数据处理方法、装置、终端及存储介质 |
CN112084204B (zh) * | 2020-09-10 | 2024-05-10 | 北京百度网讯科技有限公司 | 浏览数据处理方法、装置、终端及存储介质 |
CN112052097B (zh) * | 2020-10-15 | 2024-05-03 | 腾讯科技(深圳)有限公司 | 虚拟场景的渲染资源处理方法、装置、设备及存储介质 |
CN112052097A (zh) * | 2020-10-15 | 2020-12-08 | 腾讯科技(深圳)有限公司 | 虚拟场景的渲染资源处理方法、装置、设备及存储介质 |
CN112487029A (zh) * | 2020-11-11 | 2021-03-12 | 杭州电魂网络科技股份有限公司 | 渐进式缓存淘汰方法、装置、电子设备和存储介质 |
CN112650720A (zh) * | 2020-12-18 | 2021-04-13 | 深圳市佳创视讯技术股份有限公司 | 一种缓存系统管理方法、装置及计算机可读存储介质 |
CN112559572A (zh) * | 2020-12-22 | 2021-03-26 | 上海悦易网络信息技术有限公司 | 一种用于Key-Value缓存系统数据缓存预热的方法及设备 |
CN112667530A (zh) * | 2020-12-31 | 2021-04-16 | 联想(北京)有限公司 | 一种数据缓存方法及装置 |
CN113076067A (zh) * | 2021-04-16 | 2021-07-06 | 北京沃东天骏信息技术有限公司 | 淘汰缓存数据的方法和装置 |
CN113806389A (zh) * | 2021-09-22 | 2021-12-17 | 未鲲(上海)科技服务有限公司 | 一种数据处理方法、装置、计算设备与存储介质 |
CN114416800A (zh) * | 2022-01-24 | 2022-04-29 | 深圳小鹅网络技术有限公司 | 热点缓存过期淘汰方法、装置、计算机设备和存储介质 |
CN116339643A (zh) * | 2023-05-26 | 2023-06-27 | 苏州浪潮智能科技有限公司 | 一种磁盘阵列的格式化方法、装置、设备和介质 |
CN116339643B (zh) * | 2023-05-26 | 2023-08-04 | 苏州浪潮智能科技有限公司 | 一种磁盘阵列的格式化方法、装置、设备和介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111176560B (zh) | 2022-02-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111176560B (zh) | 一种缓存管理方法、装置、计算机设备及存储介质 | |
US9767140B2 (en) | Deduplicating storage with enhanced frequent-block detection | |
CN104281533B (zh) | 一种存储数据的方法及装置 | |
US20110107053A1 (en) | Allocating Storage Memory Based on Future Use Estimates | |
US20080059718A1 (en) | Storage system, data relocation method thereof, and recording medium that records data relocation program | |
CN110727404A (zh) | 一种基于存储端的数据重删方法、设备以及存储介质 | |
CN111324303B (zh) | Ssd垃圾回收方法、装置、计算机设备及存储介质 | |
CN107193503B (zh) | 一种数据重删方法及存储设备 | |
CN112559386B (zh) | 提升ssd性能的方法、装置、计算机设备及存储介质 | |
CN108664415B (zh) | 共享替换策略计算机高速缓存系统和方法 | |
US20150089097A1 (en) | I/o processing control apparatus and i/o processing control method | |
CN111625515A (zh) | 一种聚合小文件的操作请求的处理方法及装置 | |
CN110352410B (zh) | 跟踪索引节点的访问模式以及预提取索引节点 | |
US10831662B1 (en) | Systems and methods for maintaining cache coherency | |
CN111857574A (zh) | 一种写请求数据压缩方法、系统、终端及存储介质 | |
CN111124314A (zh) | 映射表动态加载的ssd性能提升方法、装置、计算机设备及存储介质 | |
US20170024147A1 (en) | Storage control device and hierarchized storage control method | |
CN108228340B (zh) | 终端控制方法及装置、终端设备及计算机可读存储介质 | |
CN104715025A (zh) | 用于离线Web应用的数据存储方法和装置 | |
US10185660B2 (en) | System and method for automated data organization in a storage system | |
CN107967306B (zh) | 一种存储系统中关联块的快速挖掘方法 | |
CN116185287A (zh) | 一种降低读延时的方法、装置及固态硬盘 | |
US11132128B2 (en) | Systems and methods for data placement in container-based storage systems | |
CN110658999B (zh) | 一种信息更新方法、装置、设备及计算机可读存储介质 | |
CN112395613B (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 |