CN111190655B - 一种应用缓存数据的处理方法、装置、设备及*** - Google Patents

一种应用缓存数据的处理方法、装置、设备及*** Download PDF

Info

Publication number
CN111190655B
CN111190655B CN201911392423.1A CN201911392423A CN111190655B CN 111190655 B CN111190655 B CN 111190655B CN 201911392423 A CN201911392423 A CN 201911392423A CN 111190655 B CN111190655 B CN 111190655B
Authority
CN
China
Prior art keywords
cache data
target cache
hot spot
area
preparation area
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.)
Active
Application number
CN201911392423.1A
Other languages
English (en)
Other versions
CN111190655A (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.)
Bank of China Ltd
Original Assignee
Bank of China 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 Bank of China Ltd filed Critical Bank of China Ltd
Priority to CN201911392423.1A priority Critical patent/CN111190655B/zh
Publication of CN111190655A publication Critical patent/CN111190655A/zh
Application granted granted Critical
Publication of CN111190655B publication Critical patent/CN111190655B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (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

一种应用缓存数据的处理方法、装置、设备及***
技术领域
本说明书实施例方案属于应用缓存管理技术领域,尤其涉及一种应用缓存数据的处理方法、装置、设备及***。
背景技术
在***应用中,经常存在一部分需要快速响应的数据以及可能会被高频访问的数据。由于应用内存位于进程内存空间中,其访问时间极短,因此可以满足上述的应用场景。为了有效提升***性能,通常会在应用内存中划分出一定区域用于数据的缓存。然而,由于内存本省的稀缺性,以及应用内存其主要职责为支撑应用本身的运行,应用缓存通常极其稀缺。
现有的应用缓存管理方法通常采用LRU(Least Recently Used,最近最少使用)算法进行数据的淘汰。该方法中,被读入应用缓存的数据直接置于缓存空间头部位置,旧数据会逐渐向尾部位置移动,若一段时间内数据被重新访问,则重新移动至头部位置,若一段时间内数据被访问的频率较低,则数据就可能被淘汰。这样,对于偶发性及周期性读入缓存的数据和真正需要缓存的高频访问数据,不能有效区分,而是直接读入缓存的头部位置,使得在占用缓存空间的同时,可能会将真正的部分热点数据淘汰,从而导致缓存的污染及命中率的急剧降低。
因此,业内亟需一种可以提高缓存命中率的解决方案。
发明内容
本说明书实施例在于提供一种应用缓存数据的处理方法、装置、设备及***,通过采用分段式进行应用缓存管理,对于偶发性及周期性被访问的数据,可以有效避免由于其被直接移动至应用缓存区域的头部位置,而导致的缓存低命中率及污染问题,从而可以有效提升***性能。
本说明书提供的一种应用缓存数据的处理方法、装置、设备及***是包括以下方式实现的:
一种应用缓存数据的处理方法,包括:
确定缓存空间,将所述缓存空间划分为热点区域及预备区域;
接收目标缓存数据加载请求,将所述目标缓存数据加载至所述预备区域;
判断与所述目标缓存数据对应的访问信息是否满足第一访问条件,所述第一访问条件包括访问次数达到预设次数且访问时间在预设范围内;
确定满足所述第一访问条件时,将所述目标缓存数据移动至所述热点区域。
本说明书提供的所述方法的另一个实施例中,所述将所述目标缓存数据加载至所述预备区域后,还包括:
获取所述目标缓存数据加载至所述预备区域的时间以及所述目标缓存数据加载至所述预备区域后被访问的次数和时间。
本说明书提供的所述方法的另一个实施例中,所述将所述目标缓存数据加载至所述预备区域后,还包括:
判断是否存在新缓存数据加入所述预备区域,所述预备区域采用链表结构;
确定存在时,将目标缓存数据向所述预备区域末端方向移动,获取移动后的目标缓存数据;
相应的,判断与移动后的目标缓存数据对应的访问信息是否满足第一访问条件。
本说明书提供的所述方法的另一个实施例中,所述获取移动后的目标缓存数据后,还包括:
判断所述移动后的目标缓存数据是否位于所述预备区域末端;
确定位于所述预备区域末端时,判断与所述预备区域末端目标缓存数据对应的访问信息是否满足第一访问条件;
确定不满足所述第一访问条件时,将所述目标缓存数据删除。
本说明书提供的所述方法的另一个实施例中,还包括:
判断是否存在新缓存数据加入所述热点区域,所述热点区域采用链表结构;
确定存在时,将所述目标缓存数据向所述热点区域末端方向移动。
本说明书提供的所述方法的另一个实施例中,所述将所述目标缓存数据向所述热点区域末端方向移动后,还包括:
判断移动后的目标缓存数据是否位于所述热点区域末端;
确定位于所述热点区域末端时,判断位于所述热点区域末端的目标缓存数据是否被访问;
确认被访问时,将所述位于所述热点区域末端的目标缓存数据移动至所述热点区域的头部位置。
本说明书提供的所述方法的另一个实施例中,所述判断位于所述热点区域末端的目标缓存数据是否被访问,还包括:
确认不被访问时,将所述位于所述热点区域末端的目标缓存数据移动至所述预备区域,并将所述目标缓存数据对应的访问信息进行重置。
一种应用缓存数据的处理装置,所述装置包括:
缓存空间划分模块,用于确定缓存空间,将所述缓存空间划分为热点区域及预备区域;
目标缓存数据加载模块,用于接收目标缓存数据加载请求,将所述目标缓存数据加载至所述预备区域;
访问条件判断模块,用于判断与所述目标缓存数据对应的访问信息是否满足第一访问条件,所述第一访问条件包括访问次数达到预设次数且访问时间在预设范围内;
移动模块,用于确定满足所述第一访问条件时,将所述目标缓存数据移动至所述热点区域。
本说明书提供的所述装置的另一个实施例中,所述将所述目标缓存数据加载至所述预备区域后,还包括:
访问信息获取单元,用于获取所述目标缓存数据加载至所述预备区域的时间以及所述目标缓存数据加载至所述预备区域后被访问的次数和时间。
本说明书提供的所述装置的另一个实施例中,所述将所述目标缓存数据加载至所述预备区域后,还包括:
第一判断单元,用于判断是否存在新缓存数据加入所述预备区域,所述预备区域采用链表结构;
第一移动单元,用于确定存在时,将目标缓存数据向所述预备区域末端方向移动,获取移动后的目标缓存数据;
相应的,判断与移动后的目标缓存数据对应的访问信息是否满足第一访问条件。
本说明书提供的所述装置的另一个实施例中,所述获取移动后的目标缓存数据后,还包括:
第二判断单元,用于判断所述移动后的目标缓存数据是否位于所述预备区域末端;
第三判断单元,用于确定位于所述预备区域末端时,判断与所述预备区域末端目标缓存数据对应的访问信息是否满足第一访问条件;
删除单元,用于确定不满足所述第一访问条件时,将所述目标缓存数据删除。
本说明书提供的所述装置的另一个实施例中,还包括:
第四判断单元,用于判断是否存在新缓存数据加入所述热点区域,所述热点区域采用链表结构;
第二移动单元,用于确定存在时,将所述目标缓存数据向所述热点区域末端方向移动。
本说明书提供的所述装置的另一个实施例中,所述将所述目标缓存数据向所述热点区域末端方向移动后,还包括:
第五判断单元,用于判断移动后的目标缓存数据是否位于所述热点区域末端;
第六判断单元,用于确定位于所述热点区域末端时,判断位于所述热点区域末端的目标缓存数据是否被访问;
第三移动单元,用于确认被访问时,将所述位于所述热点区域末端的目标缓存数据移动至所述热点区域的头部位置。
本说明书提供的所述装置的另一个实施例中,所述判断位于所述热点区域末端的目标缓存数据是否被访问,还包括:
第四移动单元,用于确认不被访问时,将所述位于所述热点区域末端的目标缓存数据移动至所述预备区域,并将所述目标缓存数据对应的访问信息进行重置。
一种应用缓存数据的处理设备,包括处理器及用于存储处理器可执行指令的存储器,所述指令被所述处理器执行时实现包括以下步骤:
确定缓存空间,将所述缓存空间划分为热点区域及预备区域;
接收目标缓存数据加载请求,将所述目标缓存数据加载至所述预备区域;
判断与所述目标缓存数据对应的访问信息是否满足第一访问条件,所述第一访问条件包括访问次数达到预设次数且访问时间在预设范围内;
确定满足所述第一访问条件时,将所述目标缓存数据移动至所述热点区域。
一种应用缓存数据的处理***,包括至少一个处理器以及存储计算机可执行指令的存储器,所述处理器执行所述指令时实现本说明书实施例中任意一个方法实施例方法的步骤。
本说明书实施例提供的一种应用缓存数据的处理方法、装置、设备及***,一些实施例中通过将应用缓存划分为热点区及预备区进行区别化管理,可以在偶发性访问或者周期性的批量操作情况下,区分真实热点访问数据和潜在热点数据,从而可以有效避免缓存低命中率及污染问题的同时,提高缓存数据的管理效率;通过对预备区域中缓存数据是否可以移动至热点区域进行管理的条件进行判断,可以有效避免由于缓存数据被直接移动至应用缓存区域的头部位置导致的缓存低命中率及污染问题,从而可以有效提升***性能,减少I/O消耗,降低响应时间,提升***访问容量。因此,利用本说明书各个实施例,可以有效避免由于其被直接移动至应用缓存区域的头部位置,而导致的缓存低命中率及污染问题,从而可以有效提升***性能。
附图说明
为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本说明书提供的一种应用缓存数据的处理方法的一个实施例的流程示意图;
图2是本说明书提供的一种将缓存空间划分为热点区域和预备区域的一个实施例的示意图;
图3是本说明书提供的一种将目标缓存数据加载至预备区域的一个实施例的示意图;
图4是本说明书提供的一种将目标缓存数据移动后的一个实施例的示意图;
图5是本说明书提供的一种应用缓存数据的处理方法的一个具体实施例的流程示意图;
图6是本说明书提供的一种应用缓存数据的处理装置的一个实施例的模块结构示意图;
图7是本说明书提供的一种应用缓存数据的处理服务器的一个实施例的硬件结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书中的一部分实施例,而不是全部的实施例。基于本说明书中的一个或多个实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书实施例保护的范围。
应用级缓存通常被用来缓存可能被高频访问或需要快速响应的数据。由于内存本身的稀缺性以及应用本身运行内存管理的复杂性。应用级缓存通常非常稀缺,现有的应用缓存管理方法通常将缓存空间作为整体进行管理,未划分区域。这样在偶发性访问或者周期性的批量操作情况下,可能导致缓存命中率急剧降低,一定程度上存在缓存污染的问题。
本说明书实施例提供的一种应用缓存数据的处理方法、装置、设备及***,一些实施例中通过将应用缓存划分为热点区及预备区进行区别化管理,可以在偶发性访问或者周期性的批量操作情况下,区分真实热点访问数据和潜在热点数据,从而可以有效避免缓存低命中率及污染问题的同时,提高缓存数据的管理效率;通过对预备区域中缓存数据是否可以移动至热点区域进行管理的条件进行判断,可以有效避免由于缓存数据被直接移动至应用缓存区域的头部位置导致的缓存低命中率及污染问题,从而可以有效提升***性能。
下面以一个具体的应用场景为例对本说明书实施方案进行说明。具体的,图1是本说明书提供的一种应用缓存数据的处理方法的一个实施例的流程示意图。虽然本说明书提供了如下述实施例或附图所示的方法操作步骤或装置结构,但基于常规或者无需创造性的劳动在所述方法或装置中可以包括更多或者部分合并后更少的操作步骤或模块单元。在逻辑性上不存在必要因果关系的步骤或结构中,这些步骤的执行顺序或装置的模块结构不限于本说明书实施例或附图所示的执行顺序或模块结构。所述的方法或模块结构的在实际中的装置、服务器或终端产品应用时,可以按照实施例或者附图所示的方法或模块结构进行顺序执行或者并行执行(例如并行处理器或者多线程处理的环境、甚至包括分布式处理、服务器集群的实施环境)。
需要说明的是,下述实施例描述并不对基于本说明书的其他可扩展到的应用场景中的技术方案构成限制。具体的一种实施例如图1所示,本说明书提供的一种应用缓存数据的处理方法的一种实施例中,所述方法可以包括:
S0:确定缓存空间,将所述缓存空间划分为热点区域及预备区域。
其中,缓存空间也可以称为应用缓存空间。应用缓存空间可以理解为是应用内存空间中为接收外部***查询请求而特地开辟的一块内存区域,常用于存储需要快速响应查询并且可能被频繁访问的***数据。缓存空间可以采用链表结构进行管理。链表可以理解为是链式存储的线性表,是一种数据结构,数据元素的逻辑顺序可以通过链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成,其中,位于链表头部位置的节点可以称为表头结点,位于链表尾部位置的节点可以称为表尾节点。
一些实施例中,考虑到内存的稀缺性及管理的复杂性,可以将缓存空间划分为热点区域和预备区域。
本说明书一个实施例中,可以在应用启动后,预先获取应用缓存空间大小或者容量,然后根据缓存空间的大小或者容量将其划分为热点区域和预备区域。其中,热点区域可以用来缓存真实热点访问数据,预备区域可以用来缓存潜在的热点数据。例如一些实施场景中,在给定应用缓存空间大小或者可变应用缓存空间大小的情况下,可以按照一定比例将缓存划分为热点区域和预备区域两个逻辑分区。例如,用户可以根据应用实际的内存使用场景对热点区域和预备区域的大小进行划分,考虑到缓存的实际使用场景及其本身的稀缺性,通常可以将热点区域的划分不少于60%。
需要说明的是,一些实施例中,对缓存空间划分的标准可以结合实际业务场景确定,本说明书对此不作限定。
本说明书一个实施例中,将缓存空间划分为热点区域及预备区域后,由于缓存空间可以采用链表结构,所以划分后的热点区域及预备区域也可以采用链表结构,这样划分后的热点区域及预备区域可以分别包括头部位置和尾部位置。
本说明书一个实施例中,将缓存空间划分为热点区域及预备区域后,可以将热点区域及预备区域通过子链表首尾相连接,也可以通过其他方式连接。如图2所示,图2是本说明书提供的一种将缓存空间划分为热点区域和预备区域的一个实施例的示意图。需要说明的是,可以热点区域与预备区域的连接方式还可以是其他方式,本说明对此不作限定。
本说明书实施例中,通过将应用缓存划分为热点区及预备区进行区别化管理,在偶发性访问或者周期性的批量操作情况下,可以有效避免缓存低命中率及污染问题。
S2:接收目标缓存数据加载请求,将所述目标缓存数据加载至所述预备区域。
本说明书实施例中,在将所述缓存空间划分为热点区域及预备区域后,可以接收缓存数据的加载请求。其中,加载请求可以由外部请求触发,也可以由其它条件触发。
本说明书一个实施例中,在接收目标缓存数据加载请求后,可以将目标缓存数据加载至缓存空间中。例如一些实施场景中,目标缓存数据被加载至缓存空间中后,可以将其置于预备区域的头部位置。如图3所示,图3是本说明书提供的一种将目标缓存数据加载至预备区域的一个实施例的示意图,其中,图中缓存数据可以表示目标缓存数据。
本说明书一个实施例中,所述将所述目标缓存数据加载至所述预备区域后,还可以包括:获取所述目标缓存数据加载至所述预备区域的时间以及所述目标缓存数据加载至所述预备区域后被访问的次数和时间。例如一些实施场景中,在将目标缓存数据置于预备区域的头部位置时,可以设置初始访问次数为零,记录对应的时间作为初始加载时间。另一些实施场景中,由于在将目标缓存数据置于预备区域的头部位置后,目标缓存数据可能会被多次访问,此时,可以统计其被访问的次数以及每次被访问对应的时间,以便后续根据访问次数和时间判断其是否为真实热点访问数据。另一些实施场景中,由于在将目标缓存数据置于预备区域的头部位置后,目标缓存数据可能会被多次访问,此时,可以统计其被访问的次数以及最后一次被访问对应的时间,以便后续根据访问次数和访问时间判断其是否为真实热点访问数据。
本说明书一个实施例中,在将所述目标缓存数据加载至所述预备区域后,可以采用LRU算法对预备区域内缓存数据进行淘汰策略管理。
本说明书一个实施例中,所述将所述目标缓存数据加载至所述预备区域后,还可以包括:判断是否存在新缓存数据加入所述预备区域,所述预备区域采用链表结构;确定存在时,将目标缓存数据向所述预备区域末端方向移动,获取移动后的目标缓存数据。例如一些实施场景中,在将目标缓存数据加载至预备区域的头部位置后,还有其他缓存数据加入预备区域,此时,可以将目标缓存数据向预备区域末端方向移动。如图4所示,图4是本说明书提供的一种将目标缓存数据移动后的一个实施例的示意图,其中,图中缓存数据可以表示目标缓存数据,新数据可以表示其他缓存数据,移动方向可以表示有其他缓存数据加入预备区域时,目标缓存数据移动的方向,其指向预备区域末端。
本说明书一个实施例中,所述获取移动后的目标缓存数据后,还可以包括:判断所述移动后的目标缓存数据是否位于所述预备区域末端。例如一些实施场景中,随着新缓存数据加入预备区域,目标缓存数据可能会被逐渐移动至预备区域的尾部位置。
本说明书实施例中,通过接收目标缓存数据加载请求,将目标缓存数据加载至预备区域,可以有效避免缓存数据被直接移动至应用缓存区域的头部位置导致的缓存低命中率及污染问题,提升缓存的利用效率。
S4:判断与所述目标缓存数据对应的访问信息是否满足第一访问条件,所述第一访问条件包括访问次数达到预设次数且访问时间在预设范围内。
本说明书一个实施例中,由于在将目标缓存数据置于预备区域后,目标缓存数据可能会被多次访问,此时,可以通过判断与目标缓存数据对应的访问信息是否满足第一访问条件,从而确定是否将目标缓存数据移动至热点区域进行管理。其中,第一访问条件可以包括目标缓存数据被访问的次数达到预设次数以及目标缓存数据最后一次被访问时对应的时间在预设范围内。需要说明的是,预设次数和预设范围可以根据时间场景设定,本说明书对此不作限定。
本说明书另一个实施例中,在将目标缓存数据加载至预备区域后,还可以包括:判断是否存在新缓存数据加入所述预备区域;确定存在时,将目标缓存数据向所述预备区域末端方向移动,获取移动后的目标缓存数据;相应的,判断与移动后的目标缓存数据对应的访问信息是否满足第一访问条件。
例如一些实施场景中,在将目标缓存数据加载至预备区域后,可以先判断是否有新缓存数据加入预备区域,如果有新缓存数据加入,可以将目标缓存数据向预备区域末端方向移动后,再判断目标缓存数据被访问的次数是否达到预设次数以及目标缓存数据最后一次被访问时对应的时间是否在预设范围内,从而确定是否将目标缓存数据移动至热点区域进行管理。另一些实施场景中,在将目标缓存数据加载至预备区域后,可以先判断是否有新缓存数据加入预备区域,如果没有新缓存数据加入,可以判断目标缓存数据被访问的次数是否达到预设次数以及目标缓存数据最后一次被访问时对应的时间是否在预设范围内,从而确定是否将目标缓存数据移动至热点区域进行管理。另一些实施场景中,在将目标缓存数据加载至预备区域后,可以先判断是否有新缓存数据加入预备区域,如果有新缓存数据加入,可以将目标缓存数据向预备区域末端方向移动后,再判断目标缓存数据被访问的次数是否达到预设次数以及目标缓存数据最后一次被访问时对应的时间是否在预设范围内,从而确定是否将目标缓存数据移动至热点区域进行管理;如果没有新缓存数据加入,可以判断目标缓存数据被访问的次数是否达到预设次数以及目标缓存数据最后一次被访问时对应的时间是否在预设范围内,从而确定是否将目标缓存数据移动至热点区域进行管理。
本说明书一个实施例中,所述获取移动后的目标缓存数据后,还可以包括:判断所述移动后的目标缓存数据是否位于所述预备区域末端;确定位于所述预备区域末端时,判断与所述预备区域末端目标缓存数据对应的访问信息是否满足第一访问条件。
例如一些实施场景中,随着新缓存数据加入预备区域,目标缓存数据可能会被逐渐移动至预备区域的尾部位置,此时,可以判断位于尾部位置的目标缓存数据被访问的次数是否达到预设次数以及位于尾部位置的目标缓存数据最后一次被访问时对应的时间是否在预设范围内,从而确定是否将目标缓存数据移动至热点区域进行管理。
另一些实施场景中,随着新缓存数据加入预备区域,目标缓存数据被逐渐移动至预备区域的尾部位置,如果在目标缓存数据被移动至预备区域的尾部位置时,依旧有新缓存数据加入,此时可以判断位于尾部位置的目标缓存数据被访问的次数是否达到预设次数以及位于尾部位置的目标缓存数据最后一次被访问时对应的时间是否在预设范围内,从而确定是否将目标缓存数据移动至热点区域进行管理。
本说明书实施例中,通过对缓存数据对应的访问信息进行判断,可以区分真实热点访问数据和潜在热点数据,从而提高缓存数据的管理效率。
S6:确定满足所述第一访问条件时,将所述目标缓存数据移动至所述热点区域。
所述第一访问条件可以包括访问次数达到预设次数且访问时间在预设范围内。其中,第一访问条件可以根据具体应用场景设置。例如一些实施场景中,用户可以设置第一访问条件包括加载至缓存空间后的访问次数为N,以及满足访问次数的时间区间为T,即缓存数据满足在时间T内被访问N次。例如,从缓存数据首次被加载至缓存空间中预备区域后开始,在t<T时刻发生第N+1次访问时,则可以将该缓存数据从预备区域移动至热点区域。
本说明书实施例中,通过判断目标缓存数据是否满足第一访问条件,可以确定是否将目标缓存数据移动至热点区域进行管理。
本说明书一个实施例中,由于在将目标缓存数据置于预备区域后,目标缓存数据可能会被多次访问,此时,可以判断与目标缓存数据对应的访问信息是否满足第一访问条件,确定满足时,可以将目标缓存数据移动至热点区域进行管理。
本说明书一个实施例中,由于在将目标缓存数据置于预备区域后,还可能会存在新缓存数据加入预备区域,此时,可以判断是否存在新缓存数据加入预备区域,确定存在时,可以将目标缓存数据向预备区域末端方向移动,然后,判断移动后的目标缓存数据对应的访问信息是否满足第一访问条件,确定满足时,可以将目标缓存数据移动至热点区域进行管理。
本说明书一个实施例中,所述获取移动后的目标缓存数据后,还可以包括:判断所述移动后的目标缓存数据是否位于所述预备区域末端;确定位于所述预备区域末端时,判断与所述预备区域末端目标缓存数据对应的访问信息是否满足第一访问条件;确定不满足所述第一访问条件时,将所述目标缓存数据删除。例如一些实施场景中,随着新缓存数据加入预备区域,目标缓存数据可能会被逐渐移动至预备区域的尾部位置,此时,可以判断位于尾部位置的目标缓存数据对应的访问信息是否满足第一访问条件,确定满足时,可以将目标缓存数据移动至热点区域进行管理。另一些实施场景中,随着新缓存数据加入预备区域,目标缓存数据可能会被逐渐移动至预备区域的尾部位置,如果位于尾部位置的目标缓存数据对应的访问信息不满足第一访问条件,依旧有新缓存数据加入,此时可以将该目标缓存数据淘汰。
本说明书一个实施例中,在将所述目标缓存数据移动至所述热点区域后,可以采用LRU算法对热点区域内缓存数据进行淘汰策略管理。
本说明书一个实施例中,在将所述目标缓存数据移动至所述热点区域后,还可以包括:判断是否存在新缓存数据加入所述热点区域,所述热点区域采用链表结构;确定存在时,将所述目标缓存数据向所述热点区域末端方向移动。例如一些实施场景中,随着新缓存数据从预备区域移动至热点区域,位于热点区域的缓存数据会依次向热点区域末端方向移动。其中,在移动过程中,如果缓存数据被再次访问,则该缓存数据将被重新移动至热点区域头部位置。
本说明书一个实施例中,所述将所述目标缓存数据向所述热点区域末端方向移动后,还可以包括:判断移动后的目标缓存数据是否位于所述热点区域末端;确定位于所述热点区域末端时,判断位于所述热点区域末端的目标缓存数据是否被访问;确认被访问时,将所述位于所述热点区域末端的目标缓存数据移动至所述热点区域的头部位置。例如一些实施场景中,随着新缓存数据加入热点区域,目标缓存数据可能会被逐渐移动至热点区域的尾部位置,此时,可以判断位于尾部位置的目标缓存数据是否被再次访问,如果被再次访问,则可以将该目标缓存数据重新移动至热点区域的头部位置。
本说明书一个实施例中,所述判断位于所述热点区域末端的目标缓存数据是否被访问,还可以包括:确认不被访问时,将所述位于所述热点区域末端的目标缓存数据移动至所述预备区域,并将所述目标缓存数据对应的访问信息进行重置。例如一些实施场景中,随着新缓存数据加入热点区域,目标缓存数据被逐渐移动至热点区域的尾部位置,如果在移动至尾部位置时没有被再次访问,由于有新缓存数据的加入,此时位于热点区域末端的目标缓存数据就会被移动至预备区域头部位置。一些实施场景中,在将目标缓存数据移动至预备区域头部位置时,可以将目标缓存数据对应的访问信息进行初始化处理。例如,当热点区域中任意位置缓存数据被移动至热点区域尾部位置,并且此后有新的数据加入热点区域时,则可以将热点区域缓存数据重新移动至预备区域,并且将其访问次数与时间统计值归零。
本说明书实施例中,通过判断目标缓存数据是否满足第一访问条件,可以确定是否将目标缓存数据移动至热点区域进行管理;通过将缓存数据在预备区域与热点区域中区别化处理,可以有效避免由于缓存数据被直接移动至应用缓存区域的头部位置导致的缓存低命中率及污染问题,从而可以有效提升***性能和***访问容量。
下面以一个具体的应用场景为例对本说明书实施方案进行说明。具体的,图5是本说明书提供的一种应用缓存数据的处理方法的一个具体实施例的流程示意图。所述方法可以包括:
S10:应用启动,初始化缓存空间并加载预设的条件参数;
本实施例中,初始化缓存空间可以包括将缓存空间进行划分。其中,预设的条件参数可以包括数据加载至缓存空间后的访问次数N,以及满足访问次数的时间区间T。
S12:将目标缓存数据加载至预备区域的头部位置;
本实施例中,可以由外部请求触发,将数据被加载至缓存空间中。
S14:记录初始参数信息;
本实施例中,在将数据置于预备区域的头部位置时,可以设置初始访问次数为零,记录对应的时间作为初始时间。例如,数据被加载至预备区头部位置时,可以将与数据对应的访问次数access设置为0,记录初始时间t(0),记录开始比较时间t_start=t(0),初始化计数起始次数num_start为0。
S16:判断是否存在新缓存数据加入预备区域;
本实施例中,确定存在新缓存数据加入时,执行步骤S40-S42;确定不存在新缓存数据加入预备区域时,执行步骤S18。
S18:判断目标缓存数据是否被访问;
本实施例中,确定不被访问时,返回步骤S16;确定被访问时,执行步骤S20。
S20:记录目标缓存数据被访问的次数和对应的访问时间;
本实施例中,当位于预备区域的数据被访问后,将其访问次数access加1,并记录访问次数对应的时间t(n)。
S22:判断目标缓存数据被访问的次数和最后被访问时对应的访问时间是否满足预设的条件参数;
本实施例中,可以判断当前访问次数access是否大于访问次数N且对应的访问时间t(n)是否满足t(n)-t_start<T。
本实施例中,确定不满足时,重置初始参数信息,然后返回步骤S16。例如,可以将t_start置为t(num_start+1),将num_start置为num_start+1,access减1,然后返回步骤S16。其中,t_start表示开始比较时间,num_start表示初始化计数起始次数。例如,假设满足1s内数据被访问5次,则可以移动至热点区域。有一份数据加载至缓存后,已经在1s内连续被访问了4次,其中第1次访问发生在0.8s,第5次访问,发生在1.1s时刻,此时访问次数满足条件,但是距初次加载至缓存的时间超过了1s,因此,不符合移动至热点区域的条件。这种情况下,可以将初始计数起始次数更新为访问开始计数的次数为1,开始计数的时刻为0.8s,统计的访问次数减1为4,此后,若发生第6次访问,其时刻为1.2s,则访问次数与时间(1.2-0.8<1)均满足条件,则可以移动至热点区域。
需要说明的是,重新赋值可以在超过计时周期并且未到达预设访问次数的情况下,更新数据是否满足移动至热点区的初始计数点。
本实施例中,确定满足时,执行步骤S24。
S24:将目标缓存数据移动至热点区域头部位置;
S26:判断是否存在新缓存数据加入热点区域;
本实施例中,确定不存在新缓存数据加入时,执行步骤S50;确定存在新缓存数据加入时,执行步骤S28-S30。
S28:将目标缓存数据依次向热点区域末端方向移动;
S30:目标缓存数据移动至热点区域末端时,返回步骤S12执行。
其中,将目标缓存数据依次向热点区域末端方向移动过程中,如果目标缓存数据被再次访问,则该目标缓存数据被移动至热点区域头部位置。
本实施例中,当目标缓存数据移动至热点区域末端后,如果目标缓存数据没有被再次访问,由于有新缓存数据加入热点区域,则目标缓存数据被移动至预备区域头部位置,即返回步骤S12执行。
S40:将目标缓存数据依次向预备区域末端方向移动;
S42:目标缓存数据移动至预备区域末端时,删除目标缓存数据。
本实施例中,当目标缓存数据移动至预备区域末端后,如果目标缓存数据没有满足移动至热点区域的条件,由于有新缓存数据加入预备区域,则该目标缓存数据将被淘汰。
S50:判断目标缓存数据是否被再次访问。
本实施例中,确定被再次访问时,返回步骤S24;确定不被再次访问时,返回步骤S26。
本说明书实施例提供的一种应用缓存数据的处理方法,通过将应用缓存划分为热点区及预备区进行区别化管理,可以在偶发性访问或者周期性的批量操作情况下,区分真实热点访问数据和潜在热点数据,从而可以有效避免缓存低命中率及污染问题的同时,提高缓存数据的管理效率;通过对预备区域中缓存数据是否可以移动至热点区域进行管理的条件进行判断,可以有效避免由于缓存数据被直接移动至应用缓存区域的头部位置导致的缓存低命中率及污染问题,从而可以有效提升***性能。
本说明书中上述方法的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参加即可,每个实施例重点说明的都是与其他实施例的不同之处。相关之处参加方法实施例的部分说明即可。
基于上述所述的一种应用缓存数据的处理方法,本说明书一个或多个实施例还提供一种应用缓存数据的处理装置。所述的装置可以包括使用了本说明书实施例所述方法的***(包括分布式***)、软件(应用)、模块、组件、服务器、客户端等并结合必要的实施硬件的装置。基于同一创新构思,本说明书实施例提供的一个或多个实施例中的装置如下面的实施例所述。由于装置解决问题的实现方案与方法相似,因此本说明书实施例具体的装置的实施可以参见前述方法的实施,重复之处不再赘述。以下所使用的,术语“单元”或者“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
具体地,图6是本说明书提供的一种应用缓存数据的处理装置的一个实施例的模块结构示意图,如图6所示,本说明书提供的一种应用缓存数据的处理装置可以包括:缓存空间划分模块120,目标缓存数据加载模块122,访问条件判断模块124,移动模块126。
缓存空间划分模块120,可以用于确定缓存空间,将所述缓存空间划分为热点区域及预备区域;
目标缓存数据加载模块122,可以用于接收目标缓存数据加载请求,将所述目标缓存数据加载至所述预备区域;
访问条件判断模块124,可以用于判断与所述目标缓存数据对应的访问信息是否满足第一访问条件,所述第一访问条件包括访问次数达到预设次数且访问时间在预设范围内;
移动模块126,可以用于确定满足所述第一访问条件时,将所述目标缓存数据移动至所述热点区域。
所述装置的另一个实施例中,所述将所述目标缓存数据加载至所述预备区域后,还可以包括:
访问信息获取单元,可以用于获取所述目标缓存数据加载至所述预备区域的时间以及所述目标缓存数据加载至所述预备区域后被访问的次数和时间。
所述装置的另一个实施例中,所述将所述目标缓存数据加载至所述预备区域后,还可以包括:
第一判断单元,可以用于判断是否存在新缓存数据加入所述预备区域,所述预备区域采用链表结构;
第一移动单元,可以用于确定存在时,将目标缓存数据向所述预备区域末端方向移动,获取移动后的目标缓存数据;
相应的,判断与移动后的目标缓存数据对应的访问信息是否满足第一访问条件。
所述装置的另一个实施例中,所述获取移动后的目标缓存数据后,还可以包括:
第二判断单元,可以用于判断所述移动后的目标缓存数据是否位于所述预备区域末端;
第三判断单元,可以用于确定位于所述预备区域末端时,判断与所述预备区域末端目标缓存数据对应的访问信息是否满足第一访问条件;
删除单元,可以用于确定不满足所述第一访问条件时,将所述目标缓存数据删除。
所述装置的另一个实施例中,还可以包括:
第四判断单元,可以用于判断是否存在新缓存数据加入所述热点区域,所述热点区域采用链表结构;
第二移动单元,可以用于确定存在时,将所述目标缓存数据向所述热点区域末端方向移动。
所述装置的另一个实施例中,所述将所述目标缓存数据向所述热点区域末端方向移动后,还可以包括:
第五判断单元,可以用于判断移动后的目标缓存数据是否位于所述热点区域末端;
第六判断单元,可以用于确定位于所述热点区域末端时,判断位于所述热点区域末端的目标缓存数据是否被访问;
第三移动单元,可以用于确认被访问时,将所述位于所述热点区域末端的目标缓存数据移动至所述热点区域的头部位置。
所述装置的另一个实施例中,所述判断位于所述热点区域末端的目标缓存数据是否被访问,还可以包括:
第四移动单元,可以用于确认不被访问时,将所述位于所述热点区域末端的目标缓存数据移动至所述预备区域,并将所述目标缓存数据对应的访问信息进行重置。
本说明书实施例提供的一种应用缓存数据的处理装置,通过将应用缓存划分为热点区及预备区进行区别化管理,可以在偶发性访问或者周期性的批量操作情况下,区分真实热点访问数据和潜在热点数据,从而可以有效避免缓存低命中率及污染问题的同时,提高缓存数据的管理效率;通过对预备区域中缓存数据是否可以移动至热点区域进行管理的条件进行判断,可以有效避免由于缓存数据被直接移动至应用缓存区域的头部位置导致的缓存低命中率及污染问题,从而可以有效提升***性能。
需要说明的,上述所述的装置根据方法实施例的描述还可以包括其他的实施方式,具体的实现方式可以参照相关方法实施例的描述,在此不作一一赘述。
本说明书实施例还提供一种应用缓存数据的处理设备,包括处理器及用于存储处理器可执行指令的存储器,所述指令被所述处理器执行时实现包括以下步骤:
确定缓存空间,将所述缓存空间划分为热点区域及预备区域;
接收目标缓存数据加载请求,将所述目标缓存数据加载至所述预备区域;
判断与所述目标缓存数据对应的访问信息是否满足第一访问条件,所述第一访问条件包括访问次数达到预设次数且访问时间在预设范围内;
确定满足所述第一访问条件时,将所述目标缓存数据移动至所述热点区域。
需要说明的,上述所述的设备根据方法实施例的描述还可以包括其他的实施方式。具体的实现方式可以参照相关方法实施例的描述,在此不作一一赘述。
本说明书实施例还提供一种应用缓存数据的处理***,包括至少一个处理器以及存储计算机可执行指令的存储器,所述处理器执行所述指令时实现上述任意一个或者多个实施例中所述方法的步骤,例如包括:确定缓存空间,将所述缓存空间划分为热点区域及预备区域;接收目标缓存数据加载请求,将所述目标缓存数据加载至所述预备区域;判断与所述目标缓存数据对应的访问信息是否满足第一访问条件,所述第一访问条件包括访问次数达到预设次数且访问时间在预设范围内;确定满足所述第一访问条件时,将所述目标缓存数据移动至所述热点区域。所述的***可以为单独的服务器,也可以包括使用了本说明书的一个或多个所述方法或一个或多个实施例装置的服务器集群、***(包括分布式***)、软件(应用)、实际操作装置、逻辑门电路装置、量子计算机等并结合必要的实施硬件的终端装置。
本说明书实施例所提供的方法实施例可以在移动终端、计算机终端、服务器或者类似的运算装置中执行。以运行在服务器上为例,图7是本说明书提供的一种应用缓存数据的处理服务器的一个实施例的硬件结构框图,该服务器可以是上述实施例中的应用缓存数据的处理装置或应用缓存数据的处理***。如图7所示,服务器10可以包括一个或多个(图中仅示出一个)处理器100(处理器100可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器200、以及用于通信功能的传输模块300。本领域普通技术人员可以理解,图7所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,服务器10还可包括比图7中所示更多或者更少的组件,例如还可以包括其他的处理硬件,如数据库或多级缓存、GPU,或者具有与图7所示不同的配置。
存储器200可用于存储应用软件的软件程序以及模块,如本说明书实施例中的应用缓存数据的处理方法对应的程序指令/模块,处理器100通过运行存储在存储器200内的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器200可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器200可进一步包括相对于处理器100远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输模块300用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端的通信供应商提供的无线网络。在一个实例中,传输模块300包括一个网络适配器(Network Interface Controller,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输模块300可以为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
本说明书提供的上述实施例所述的方法或装置可以通过计算机程序实现业务逻辑并记录在存储介质上,所述的存储介质可以计算机读取并执行,实现本说明书实施例所描述方案的效果。
所述存储介质可以包括用于存储信息的物理装置,通常是将信息数字化后再以利用电、磁或者光学等方式的媒体加以存储。所述存储介质有可以包括:利用电能方式存储信息的装置如,各式存储器,如RAM、ROM等;利用磁能方式存储信息的装置如,硬盘、软盘、磁带、磁芯存储器、磁泡存储器、U盘;利用光学方式存储信息的装置如,CD或DVD。当然,还有其他方式的可读存储介质,例如量子存储器、石墨烯存储器等等。
本说明书实施例提供的上述应用缓存数据的处理方法或装置可以在计算机中由处理器执行相应的程序指令来实现,如使用windows操作***的c++语言在PC端实现、linux***实现,或其他例如使用android、iOS***程序设计语言在智能终端实现,以及基于量子计算机的处理逻辑实现等。
需要说明的是说明书上述所述的装置、计算机存储介质、***根据相关方法实施例的描述还可以包括其他的实施方式,具体的实现方式可以参照对应方法实施例的描述,在此不作一一赘述。
本申请中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于硬件+程序类实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书实施例并不局限于必须是符合行业通信标准、标准计算机数据处理和数据存储规则或本说明书一个或多个实施例所描述的情况。某些行业标准或者使用自定义方式或实施例描述的实施基础上略加修改后的实施方案也可以实现上述实施例相同、等同或相近、或变形后可预料的实施效果。应用这些修改或变形后的数据获取、存储、判断、处理方式等获取的实施例,仍然可以属于本说明书实施例的可选实施方案范围之内。
在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device,PLD)(例如现场可编程门阵列(Field Programmable GateArray,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字***“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware DescriptionLanguage)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(RubyHardware Description Language)等,目前最普遍使用的是VHDL(Very-High-SpeedIntegrated Circuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
上述实施例阐明的***、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、车载人机交互设备、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
虽然本说明书一个或多个实施例提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的手段可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的装置或终端产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境,甚至为分布式数据处理环境)。术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、产品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、产品或者设备所固有的要素。在没有更多限制的情况下,并不排除在包括所述要素的过程、方法、产品或者设备中还存在另外的相同或等同要素。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本说明书一个或多个时可以把各模块的功能在同一个或多个软件和/或硬件中实现,也可以将实现同一功能的模块由多个子模块或子单元的组合实现等。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
本发明是参照根据本发明实施例的方法、装置(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储、石墨烯存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
本领域技术人员应明白,本说明书一个或多个实施例可提供为方法、***或计算机程序产品。因此,本说明书一个或多个实施例可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书一个或多个实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于***实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本说明书的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
以上所述仅为本说明书一个或多个实施例的实施例而已,并不用于限制本本说明书一个或多个实施例。对于本领域技术人员来说,本说明书一个或多个实施例可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在权利要求范围之内。

Claims (10)

1.一种应用缓存数据的处理方法,其特征在于,包括:
确定缓存空间,将所述缓存空间划分为热点区域及预备区域;所述热点区域及所述预备区域均采用链表结构;
接收目标缓存数据加载请求,将所述目标缓存数据加载至所述预备区域的头部位置;
在有新缓存数据加入所述预备区域的情况下,将目标缓存数据向所述预备区域末端方向移动;
判断所述移动后的目标缓存数据是否位于所述预备区域末端;
在所述移动后的目标缓存数据是否位于所述预备区域末端的情况下,判断与所述目标缓存数据对应的访问信息是否满足第一访问条件,所述第一访问条件包括访问次数达到预设次数且访问时间在预设范围内;
确定满足所述第一访问条件时,将所述目标缓存数据移动至所述热点区域;所述方法还包括:
当有新缓存数据加入所述热点区域时,将热点区域链表结构中的各目标缓存数据依次向所述热点区域链表结构的末端方向移动,并将新缓存数据放入热点区域链表结构的头部;
判断移动后的所述热点区域链表结构的末端是否被访问;
确认被访问时,将所述热点区域链表结构的末端的目标缓存数据移动至所述热点区域的头部位置;否则,将所述位于所述热点区域链表结构末端的目标缓存数据移动至所述预备区域的头部位置,并将所述目标缓存数据对应的访问信息进行重置。
2.如权利要求1所述的方法,其特征在于,所述将所述目标缓存数据加载至所述预备区域后,还包括:
获取所述目标缓存数据加载至所述预备区域的时间以及所述目标缓存数据加载至所述预备区域后被访问的次数和时间。
3.如权利要求1所述的方法,其特征在于,所述将所述目标缓存数据加载至所述预备区域后,还包括:
判断是否存在新缓存数据加入所述预备区域,所述预备区域采用链表结构;
确定存在时,将目标缓存数据向所述预备区域末端方向移动,获取移动后的目标缓存数据;
相应的,判断与移动后的目标缓存数据对应的访问信息是否满足第一访问条件。
4.如权利要求3所述的方法,其特征在于,所述获取移动后的目标缓存数据后,还包括:
判断所述移动后的目标缓存数据是否位于所述预备区域末端;
确定位于所述预备区域末端时,判断与所述预备区域末端目标缓存数据对应的访问信息是否满足第一访问条件;
确定不满足所述第一访问条件时,将所述目标缓存数据删除。
5.一种应用缓存数据的处理装置,其特征在于,包括:
缓存空间划分模块,用于确定缓存空间,将所述缓存空间划分为热点区域及预备区域;所述热点区域及所述预备区域均采用链表结构;
目标缓存数据加载模块,用于接收目标缓存数据加载请求,将所述目标缓存数据加载至所述预备区域的头部位置;
访问条件判断模块,用于在有新缓存数据加入所述预备区域的情况下,将目标缓存数据向所述预备区域末端方向移动;判断所述移动后的目标缓存数据是否位于所述预备区域末端;在所述移动后的目标缓存数据是否位于所述预备区域末端的情况下,判断与所述目标缓存数据对应的访问信息是否满足第一访问条件,所述第一访问条件包括访问次数达到预设次数且访问时间在预设范围内;
移动模块,用于确定满足所述第一访问条件时,将所述目标缓存数据移动至所述热点区域;
所述装置还用于:
当有新缓存数据加入所述热点区域时,将热点区域链表结构中的各目标缓存数据依次向所述热点区域链表结构的末端方向移动,并将新缓存数据放入热点区域链表结构的头部;
判断移动后的所述热点区域链表结构的末端是否被访问;
确认被访问时,将所述热点区域链表结构的末端的目标缓存数据移动至所述热点区域的头部位置;否则,将所述位于所述热点区域链表结构末端的目标缓存数据移动至所述预备区域,并将所述目标缓存数据对应的访问信息进行重置。
6.如权利要求5所述的装置,其特征在于,所述将所述目标缓存数据加载至所述预备区域后,还包括:
访问信息获取单元,用于获取所述目标缓存数据加载至所述预备区域的时间以及所述目标缓存数据加载至所述预备区域后被访问的次数和时间。
7.如权利要求5所述的装置,其特征在于,所述将所述目标缓存数据加载至所述预备区域后,还包括:
第一判断单元,用于判断是否存在新缓存数据加入所述预备区域,所述预备区域采用链表结构;
第一移动单元,用于确定存在时,将目标缓存数据向所述预备区域末端方向移动,获取移动后的目标缓存数据;
相应的,判断与移动后的目标缓存数据对应的访问信息是否满足第一访问条件。
8.如权利要求7所述的装置,其特征在于,所述获取移动后的目标缓存数据后,还包括:
第二判断单元,用于判断所述移动后的目标缓存数据是否位于所述预备区域末端;
第三判断单元,用于确定位于所述预备区域末端时,判断与所述预备区域末端目标缓存数据对应的访问信息是否满足第一访问条件;
删除单元,用于确定不满足所述第一访问条件时,将所述目标缓存数据删除。
9.一种应用缓存数据的处理设备,包括处理器以及用于存储处理器可执行指令的存储器,所述处理器执行所述指令时实现包括以下步骤:
确定缓存空间,将所述缓存空间划分为热点区域及预备区域;所述热点区域及所述预备区域均采用链表结构;
接收目标缓存数据加载请求,将所述目标缓存数据加载至所述预备区域的头部位置;
在有新缓存数据加入所述预备区域的情况下,将目标缓存数据向所述预备区域末端方向移动;
判断所述移动后的目标缓存数据是否位于所述预备区域末端;
在所述移动后的目标缓存数据是否位于所述预备区域末端的情况下,判断与所述目标缓存数据对应的访问信息是否满足第一访问条件,所述第一访问条件包括访问次数达到预设次数且访问时间在预设范围内;
确定满足所述第一访问条件时,将所述目标缓存数据移动至所述热点区域;
当有新缓存数据加入所述热点区域时,将热点区域链表结构中的各目标缓存数据依次向所述热点区域链表结构的末端方向移动,并将新缓存数据放入热点区域链表结构的头部;
判断移动后的所述热点区域链表结构的末端是否被访问;
确认被访问时,将所述热点区域链表结构的末端的目标缓存数据移动至所述热点区域的头部位置;否则,将所述位于所述热点区域链表结构末端的目标缓存数据移动至所述预备区域的头部位置,并将所述目标缓存数据对应的访问信息进行重置。
10.一种应用缓存数据的处理***,其特征在于,包括至少一个处理器以及存储计算机可执行指令的存储器,所述处理器执行所述指令时实现权利要求1-4中任意一项所述方法的步骤。
CN201911392423.1A 2019-12-30 2019-12-30 一种应用缓存数据的处理方法、装置、设备及*** Active CN111190655B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911392423.1A CN111190655B (zh) 2019-12-30 2019-12-30 一种应用缓存数据的处理方法、装置、设备及***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911392423.1A CN111190655B (zh) 2019-12-30 2019-12-30 一种应用缓存数据的处理方法、装置、设备及***

Publications (2)

Publication Number Publication Date
CN111190655A CN111190655A (zh) 2020-05-22
CN111190655B true CN111190655B (zh) 2024-04-16

Family

ID=70711085

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911392423.1A Active CN111190655B (zh) 2019-12-30 2019-12-30 一种应用缓存数据的处理方法、装置、设备及***

Country Status (1)

Country Link
CN (1) CN111190655B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111563216B (zh) * 2020-07-16 2020-11-06 平安国际智慧城市科技股份有限公司 本地数据缓存方法、装置及相关设备
CN113177031B (zh) * 2021-04-21 2023-08-01 北京人大金仓信息技术股份有限公司 数据库共享缓存的处理方法、装置、电子设备和介质
CN115827508B (zh) * 2023-01-09 2023-05-09 苏州浪潮智能科技有限公司 一种数据处理方法、***、设备以及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103177005A (zh) * 2011-12-21 2013-06-26 深圳市腾讯计算机***有限公司 一种数据访问的处理方法和***
CN109120709A (zh) * 2018-09-03 2019-01-01 杭州云创共享网络科技有限公司 一种缓存方法、装置、设备及介质
CN109992597A (zh) * 2019-03-11 2019-07-09 福建天泉教育科技有限公司 一种热点数据的存储方法及终端

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6203592B2 (ja) * 2013-10-07 2017-09-27 株式会社日立製作所 計算機システム、キャッシュ管理方法及び計算機
US9612964B2 (en) * 2014-07-08 2017-04-04 International Business Machines Corporation Multi-tier file storage management using file access and cache profile information

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103177005A (zh) * 2011-12-21 2013-06-26 深圳市腾讯计算机***有限公司 一种数据访问的处理方法和***
CN109120709A (zh) * 2018-09-03 2019-01-01 杭州云创共享网络科技有限公司 一种缓存方法、装置、设备及介质
CN109992597A (zh) * 2019-03-11 2019-07-09 福建天泉教育科技有限公司 一种热点数据的存储方法及终端

Also Published As

Publication number Publication date
CN111190655A (zh) 2020-05-22

Similar Documents

Publication Publication Date Title
CN111190655B (zh) 一种应用缓存数据的处理方法、装置、设备及***
CN109614404B (zh) 一种数据缓存***及方法
JP2020509445A (ja) ブロックチェーンコンセンサス形成の方法およびデバイス
CN111324533B (zh) A/b测试方法、装置及电子设备
CN110989939A (zh) 一种数据缓存处理方法、装置、设备及缓存组件
CN117312394B (zh) 一种数据访问方法、装置、存储介质及电子设备
CN111078723B (zh) 一种区块链浏览器的数据处理方法及装置
CN112003922A (zh) 一种数据传输方法及装置
CN116822657B (zh) 一种模型训练加速的方法、装置、存储介质及电子设备
CN116107932B (zh) 一种数据队列更新方法、装置、存储介质及电子设备
CN110908429B (zh) 一种定时器操作方法及装置
CN110263010B (zh) 一种缓存文件自动更新方法及装置
CN116304212A (zh) 一种数据处理***、方法、设备及存储介质
CN113010551B (zh) 一种资源缓存方法及装置
CN116166614A (zh) 一种日志归档的方法、装置、存储介质及电子设备
CN109753351B (zh) 一种限时任务处理方法、装置、设备及介质
CN116185307B (zh) 一种模型数据的存储方法、装置、存储介质及电子设备
CN111177066A (zh) 一种提高访问片外存储器的效率的方法、设备及介质
CN117407124B (zh) 一种基于构建出的数据编排策略生成模型的业务执行方法
CN112019431B (zh) 一种转发规则的处理方法、装置及设备
CN116107636B (zh) 一种硬件加速方法、装置、存储介质及电子设备
CN117522669B (zh) 一种图形处理器内存优化方法、装置、介质及设备
CN117909371B (zh) 一种模型训练方法、装置、存储介质及电子设备
CN116089434B (zh) 一种数据存储方法、装置、存储介质及电子设备
CN117499492A (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