CN113268440A - 缓存淘汰方法及系统 - Google Patents
缓存淘汰方法及系统 Download PDFInfo
- Publication number
- CN113268440A CN113268440A CN202110576609.3A CN202110576609A CN113268440A CN 113268440 A CN113268440 A CN 113268440A CN 202110576609 A CN202110576609 A CN 202110576609A CN 113268440 A CN113268440 A CN 113268440A
- Authority
- CN
- China
- Prior art keywords
- queue
- code
- data
- cache
- cache eviction
- 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
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/123—Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list
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
技术领域
本申请涉及数据处理技术领域,尤其涉及一种缓存淘汰方法、系统、电子装置及计算机可读存储介质。
背景技术
缓存淘汰算法是一种为了充分利用缓存数据的淘汰算法。大部分操作系统为最大化页面命中率,广泛采用LRU(Least Recently Used,最近最少使用)淘汰算法。LRU淘汰算法维护一个队列,Insert(插入)操作会将数据放到队列头部,而淘汰则从队列尾部开始,并且Lookup(查询)操作得到的Key(数据资源的唯一ID号)也会做更新,将Key转移到队列头部。LRU-K淘汰算法中的中的K代表最近使用次数的阈值,是当该使用次数达到K次才进入LRU队列中的一种淘汰算法。
当存在热点数据时,LRU淘汰算法的效率很好,但偶发性的、周期性的批量插入操作会导致命中率急剧下降。而LRU-K淘汰算法虽然可以很好的解决偶发性的、周期性的批量插入操作所带来的影响,但对K值的调整是繁琐的过程,若K值太小则效果与LRU淘汰算法相似,太大则适应性差,需要大量的数据访问才能将历史访问记录(访问频次的计数)淘汰掉。另外,由于LRU-K淘汰算法中的K值是一个累加值,意味着不能做到快速适应流量的变化。
需要说明的是,上述内容并不用于限制申请保护范围。
发明内容
本申请的主要目的在于提出一种缓存淘汰方法、系统、电子装置及计算机可读存储介质,旨在解决如何有效进行缓存数据的淘汰且不需要大量的数据访问的问题。
为实现上述目的,本申请实施例提供了一种缓存淘汰方法,所述方法包括:
设置第一队列和第二队列,其中,所述第一队列用于维护缓存数据及每个所述数据对应的唯一编码,所述第二队列用于维护每个所述数据的所述编码和每秒查询率;
接收所要查询的数据的所述编码;及
根据所述编码向所述第一队列发起查询操作,并在未查询到所述编码时更新所述第一队列和所述第二队列,对所述第一队列中的冷数据进行淘汰。
可选地,所述更新所述第一队列和所述第二队列,对所述第一队列中的冷数据进行淘汰包括:
查看所述编码是否在所述第二队列中;
当所述编码不在所述第二队列中时,将所述编码插入所述第二队列,且将所述编码对应的当前每秒查询率CQPS和上一次每秒查询率PQPS均初始化为0。
可选地,所述更新所述第一队列和所述第二队列,对所述第一队列中的冷数据进行淘汰还包括:
当所述编码存在所述第二队列中时,将所述编码对应的所述PQPS赋值为已记录的所述CQPS的值,并重新计算新的所述CQPS的值;
根据更新后的所述PQPS和所述CQPS的值判断是否将所述编码对应的所述数据保存到所述第一队列中。
可选地,所述根据更新后的所述PQPS和所述CQPS的值判断是否将所述编码对应的所述数据保存到所述第一队列中包括:
根据所述PQPS和所述CQPS的值以及预设的计算因子Factor计算所述编码的每秒查询率KQPS,其中KQPS=CQPS*Factor+PQPS*(1-Factor);
计算所有所述编码对应的每秒查询率总和TQPS;
比较所述KQPS与所述TQPS的比值是否大于预设的阈值;
当所述KQPS与所述TQPS的比值大于所述阈值时,将所述编码对应的所述数据保存到所述第一队列中。
可选地,所述将所述编码对应的所述数据保存到所述第一队列中包括:
将所述编码对应的所述数据插入到所述第一队列的头部,并淘汰所述第一队列尾部的数据。
可选地,所述将所述编码插入所述第二队列包括:
将所述编码插入到所述第二队列的头部,并淘汰所述第二队列尾部的编码。
可选地,所述方法在根据所述编码向所述第一队列发起查询操作后还包括:
当从所述第一队列中查询到所述编码时,从所述第一队列中获取所述编码对应的所述数据并返回;
当从所述第一队列中未查询到所述编码时,从数据源处获取所述编码对应的所述数据并返回。
此外,为实现上述目的,本申请实施例还提供一种缓存淘汰系统,所述系统包括:
设置模块,用于设置第一队列和第二队列,其中,所述第一队列用于维护缓存数据及每个所述数据对应的唯一编码,所述第二队列用于维护每个所述数据的所述编码和每秒查询率;
接收模块,用于接收所要查询的数据的所述编码;
查询模块,用于根据所述编码向所述第一队列发起查询操作;
更新模块,用于在未查询到所述编码时更新所述第一队列和所述第二队列,对所述第一队列中的冷数据进行淘汰。
为实现上述目的,本申请实施例还提供一种电子装置,所述电子装置包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的缓存淘汰程序,所述缓存淘汰程序被所述处理器执行时实现如上述的缓存淘汰方法。
为实现上述目的,本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有缓存淘汰程序,所述缓存淘汰程序被处理器执行时实现如上述的缓存淘汰方法。
本申请实施例提出的缓存淘汰方法、系统、电子装置及计算机可读存储介质,能够有效辨别队列中的热数据集、温数据集和冷数据集,提高淘汰时的准确性,并且不需要大量的数据访问就能将历史访问记录的缓存数据淘汰掉。
附图说明
图1为实现本申请各个实施例的一种应用环境架构图;
图2为本申请第一实施例提出的一种缓存淘汰方法的流程图;
图3为本申请中的第一队列和第二队列的示意图;
图4为图2中步骤S206的细化流程示意图;
图5为本申请第二实施例提出的一种电子装置的硬件架构示意图;
图6为本申请第三实施例提出的一种缓存淘汰系统的模块示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,在本申请实施例中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本申请要求的保护范围之内。
请参阅图1,图1为实现本申请各个实施例的一种应用环境架构图。本申请可应用于包括,但不仅限于电子装置2、数据源4、网络6的应用环境中。
其中,所述电子装置2用于维护两个LRU队列,接收需要查询的数据的编码,查询并返回所述编码对应的数据。其中,第一个队列用于维护缓存数据及每个所述数据对应的唯一编码,另一个队列用于维护每个所述数据的所述编码和每秒查询率。所述电子装置2可以为服务器或PC(Personal Computer,个人电脑)、手机、平板电脑、便携计算机、可穿戴设备等终端设备,或者其他具有数据处理能力的设备。所述服务器可以是机架式服务器、刀片式服务器、塔式服务器或机柜式服务器等计算设备,可以是独立的服务器,也可以是多个服务器所组成的服务器集群。
所述数据源4用于保存各种数据,当所述电子装置2从第一个队列中未查询到所述编码对应的数据时,从所述数据源4中获取所述数据并返回。值得注意的是,所述数据源4可以单独存在于其他设备(例如数据服务器)中,也可以存在于所述电子装置2中。
所述网络6可以是企业内部网(Intranet)、互联网(Internet)、全球移动通讯系统(Global System of Mobile communication,GSM)、宽带码分多址(Wideband CodeDivision Multiple Access,WCDMA)、4G网络、5G网络、蓝牙(Bluetooth)、Wi-Fi等无线或有线网络。所述电子装置2和其他装置或所述数据源4之间通过所述网络6通信连接,以进行数据传输和交互。
实施例一
如图2所示,为本申请第一实施例提出的一种缓存淘汰方法的流程图。可以理解,本方法实施例中的流程图不用于对执行步骤的顺序进行限定。根据需要,还可以对该流程图中的部分步骤进行添加或删减。
该方法包括以下步骤:
S200,设置第一队列和第二队列。
在本实施例中,所述第一队列用于维护缓存数据及每个所述数据对应的唯一编码(Key),所述第二队列用于维护每个所述数据的所述编码和每秒查询率。将数据缓存到本地或者服务(第一队列)中,能快速响应请求。
参阅图3所示,为所述第一队列和所述第二队列的示意图。所述第一队列和所述第二队列均为LRU队列,在进行插入(Insert)操作时会将数据放到队列头部(Front),而淘汰时则从队列尾部(Rear)开始,并且查询(Lookup)操作时得到的数据也会进行更新,转移到队列头部。
一般情况下,每个队列中可能包含热数据集(HFK)、温数据集(MFK)和冷数据集(LFK)。其中,所述热数据集中的每个编码使用的频次较高,所述温数据集中的每个编码使用的频次中等,而所述冷数据集中的每个编码使用的频次较低。并且实际上每个时刻所述热数据集、温数据集和冷数据集的分布都会变动,因为不断有新的查询请求。在本实施例中,所述第一队列中偏向头部的部分数据为热数据集,偏向尾部的部分数据为温数据集,而冷数据集在所述第一队列中已被淘汰。所述第二队列中偏向头部的部分数据为冷数据集,偏向尾部的部分数据为温数据集。
S202,接收所要查询的数据的所述编码。
当需要查询数据时,接收所述数据对应的所述编码,然后即可根据所述编码进行查询操作。
S204,根据所述编码向所述第一队列发起查询操作。
由于数据源的处理时间较长,当接收到所要查询的所述数据的所述编码时,优先从缓存的数据中进行查询,也就是向所述第一队列发起查询操作。若从所述第一队列中查询到所述编码,则从所述第一队列中获取所述编码对应的所述数据并返回。若从所述第一队列中未查询到所述编码,则从数据源处获取所述编码对应的所述数据并返回。
S206,在未查询到所述编码时更新所述第一队列和所述第二队列,对所述第一队列中的冷数据进行淘汰。
在本实施例中,当从所述第一队列中未查询到所述编码时,还需要根据预设规则对所述第一队列和所述第二队列进行一系列的更新操作。
具体而言,进一步参阅图4,为上述步骤S206的细化流程示意图。可以理解,该流程图不用于对执行步骤的顺序进行限定。根据需要,还可以对该流程图中的部分步骤进行添加或删减。在本实施例中,所述步骤S206具体包括:
S2060,查看所述编码是否在所述第二队列中。当所述编码不在所述第二队列中时,执行步骤S2062。当所述编码存在所述第二队列中时,执行步骤S2064-S2066。
S2062,将所述编码插入所述第二队列,且将所述编码对应的当前每秒查询率(CQPS)和上一次每秒查询率(PQPS)均初始化为0。
在所述第二队列中,每个编码都对应两个每秒查询率的值,一个是当前每秒查询率(CQPS),还有一个是上一次每秒查询率(PQPS),也就是上一次计算的CQPS。当所述编码不在所述第二队列中时,将所述编码插入到所述第二队列的头部,并淘汰所述第二队列尾部的编码。在插入所述编码后,还需要在所述第二队列中将所述编码对应的所述CQPS和所述PQPS均初始化为0,待后续有新的查询时再进行计算和更新。
S2064,将所述编码对应的所述PQPS赋值为已记录的所述CQPS的值,并重新计算新的所述CQPS的值。
在将所述编码插入到所述第二队列的头部后,还需要将所述编码对应的所述PQPS赋值为已记录的(也就是上一次计算的)所述CQPS的值,同时重新计算新的所述CQPS的值,也就是当前所述编码对应的每秒查询率。通过该步骤,可以将所述第二队列中的编码和每秒查询率更新为当前最新值。
S2066,根据更新后的所述PQPS和所述CQPS的值判断是否将所述编码对应的所述数据保存到所述第一队列中。
具体地,根据所述PQPS和所述CQPS的值以及预设的计算因子Factor计算所述编码的每秒查询率KQPS,其中KQPS=CQPS*Factor+PQPS*(1-Factor)。然后计算所有所述编码(第一队列)对应的每秒查询率总和TQPS。再比较所述KQPS与所述TQPS的比值是否大于预设的阈值HRN。当所述KQPS与所述TQPS的比值大于所述阈值HRN时,将所述编码对应的所述数据保存到所述第一队列中,包括将所述编码对应的所述数据插入到所述第一队列的头部,并淘汰所述第一队列尾部的数据(冷数据)。
值得注意的是,所述第二队列内部不会计算每个编码对应的每秒查询率(CQPS、PQPS、KQPS),而是按照实时操作进行排序,每个编码都会在被查询的时候计算每秒查询率(也就是采用懒惰计算法,需要用到时才计算值)。
本实施例提出的缓存淘汰方法,在KQPS与TQPS的比值大于阈值HRN时才将数据插入缓存队列,可以有效辨别温数据集和冷数据集,提高淘汰时的准确性。并且,相比LRU-K淘汰算法的K值需要累加,该方法中的HRN值更能筛选出热数据集和温数据集,且HRN值没有历史包裹,不需要大量的数据访问就能将历史访问记录的缓存数据淘汰掉。
实施例二
如图5所示,为本申请第三实施例提出一种电子装置2的硬件架构示意图。本实施例中,所述电子装置2可包括,但不仅限于,可通过系统总线相互通信连接的存储器21、处理器22、网络接口23。需要指出的是,图5仅示出了具有组件21-23的电子装置2,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。
所述存储器21至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,所述存储器21可以是所述电子装置2的内部存储单元,例如该电子装置2的硬盘或内存。在另一些实施例中,所述存储器21也可以是所述电子装置2的外部存储设备,例如该电子装置2上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。当然,所述存储器21还可以既包括所述电子装置2的内部存储单元也包括其外部存储设备。本实施例中,所述存储器21通常用于存储安装于所述电子装置2的操作系统和各类应用软件,例如缓存淘汰系统60的程序代码等。此外,所述存储器21还可以用于暂时地存储已经输出或者将要输出的各类数据。
所述处理器22在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器22通常用于控制所述电子装置2的总体操作。本实施例中,所述处理器22用于运行所述存储器21中存储的程序代码或者处理数据,例如运行所述缓存淘汰系统60等。
所述网络接口23可包括无线网络接口或有线网络接口,该网络接口23通常用于在所述电子装置2与其他电子设备之间建立通信连接。
实施例三
如图6所示,为本申请第三实施例提出一种缓存淘汰系统60的模块示意图。所述缓存淘汰系统60可以被分割成一个或多个程序模块,一个或者多个程序模块被存储于存储介质中,并由一个或多个处理器所执行,以完成本申请实施例。本申请实施例所称的程序模块是指能够完成特定功能的一系列计算机程序指令段,以下描述将具体介绍本实施例各程序模块的功能。
在本实施例中,所述缓存淘汰系统60包括:
设置模块600,用于设置第一队列和第二队列。
在本实施例中,所述第一队列用于维护缓存数据及每个所述数据对应的唯一编码,所述第二队列用于维护每个所述数据的所述编码和每秒查询率。将数据缓存到本地或者服务(第一队列)中,能快速响应请求。
所述第一队列和所述第二队列均为LRU队列,在进行插入操作时会将数据放到队列头部,而淘汰时则从队列尾部开始,并且查询操作时得到的数据也会进行更新,转移到队列头部。
一般情况下,每个队列中可能包含热数据集、温数据集和冷数据集。其中,所述热数据集中的每个编码使用的频次较高,所述温数据集中的每个编码使用的频次中等,而所述冷数据集中的每个编码使用的频次较低。并且实际上每个时刻所述热数据集、温数据集和冷数据集的分布都会变动,因为不断有新的查询请求。在本实施例中,所述第一队列中偏向头部的部分数据为热数据集,偏向尾部的部分数据为温数据集,而冷数据集在所述第一队列中已被淘汰。所述第二队列中偏向头部的部分数据为冷数据集,偏向尾部的部分数据为温数据集。
接收模块602,用于接收所要查询的数据的所述编码。
当需要查询数据时,接收所述数据对应的所述编码,然后即可根据所述编码进行查询操作。
查询模块604,用于根据所述编码向所述第一队列发起查询操作。
由于数据源的处理时间较长,当接收到所要查询的所述数据的所述编码时,优先从缓存的数据中进行查询,也就是向所述第一队列发起查询操作。若从所述第一队列中查询到所述编码,则从所述第一队列中获取所述编码对应的所述数据并返回。若从所述第一队列中未查询到所述编码,则从数据源处获取所述编码对应的所述数据并返回。
更新模块606,用于在未查询到所述编码时更新所述第一队列和所述第二队列,对所述第一队列中的冷数据进行淘汰。
在本实施例中,当从所述第一队列中未查询到所述编码时,还需要根据预设规则对所述第一队列和所述第二队列进行一系列的更新操作。
首先,查看所述编码是否在所述第二队列中。当所述编码不在所述第二队列中时,将所述编码插入所述第二队列,且将所述编码对应的当前每秒查询率(CQPS)和上一次每秒查询率(PQPS)均初始化为0。
在所述第二队列中,每个编码都对应两个每秒查询率的值,一个是当前每秒查询率(CQPS),还有一个是上一次每秒查询率(PQPS),也就是上一次计算的CQPS。当所述编码不在所述第二队列中时,将所述编码插入到所述第二队列的头部,并淘汰所述第二队列尾部的编码。在插入所述编码后,还需要在所述第二队列中将所述编码对应的所述CQPS和所述PQPS均初始化为0,待后续有新的查询时再进行计算和更新。
当所述编码存在所述第二队列中时,将所述编码对应的所述PQPS赋值为已记录的所述CQPS的值,并重新计算新的所述CQPS的值。
在将所述编码插入到所述第二队列的头部后,还需要将所述编码对应的所述PQPS赋值为已记录的(也就是上一次计算的)所述CQPS的值,同时重新计算新的所述CQPS的值,也就是当前所述编码对应的每秒查询率。通过该步骤,可以将所述第二队列中的编码和每秒查询率更新为当前最新值。
然后根据更新后的所述PQPS和所述CQPS的值判断是否将所述编码对应的所述数据保存到所述第一队列中。
具体地,根据所述PQPS和所述CQPS的值以及预设的计算因子Factor计算所述编码的每秒查询率KQPS,其中KQPS=CQPS*Factor+PQPS*(1-Factor)。然后计算所有所述编码(第一队列)对应的每秒查询率总和TQPS。再比较所述KQPS与所述TQPS的比值是否大于预设的阈值HRN。当所述KQPS与所述TQPS的比值大于所述阈值HRN时,将所述编码对应的所述数据保存到所述第一队列中,包括将所述编码对应的所述数据插入到所述第一队列的头部,并淘汰所述第一队列尾部的数据(冷数据)。
值得注意的是,所述第二队列内部不会计算每个编码对应的每秒查询率(CQPS、PQPS、KQPS),而是按照实时操作进行排序,每个编码都会在被查询的时候计算每秒查询率(也就是采用懒惰计算法,需要用到时才计算值)。
本实施例提出的缓存淘汰系统,在KQPS与TQPS的比值大于阈值HRN时才将数据插入缓存队列,可以有效辨别温数据集和冷数据集,提高淘汰时的准确性。并且,相比LRU-K淘汰算法的K值需要累加,该系统所使用的HRN值更能筛选出热数据集和温数据集,且HRN值没有历史包裹,不需要大量的数据访问就能将历史访问记录的缓存数据淘汰掉。
实施例四
本申请还提供了另一种实施方式,即提供一种计算机可读存储介质,所述计算机可读存储介质存储有缓存淘汰程序,所述缓存淘汰程序可被至少一个处理器执行,以使所述至少一个处理器执行如上述的缓存淘汰方法的步骤。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
显然,本领域的技术人员应该明白,上述的本申请实施例的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本申请实施例不限制于任何特定的硬件和软件结合。
以上仅为本申请实施例的优选实施例,并非因此限制本申请实施例的专利范围,凡是利用本申请实施例说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请实施例的专利保护范围内。
Claims (10)
1.一种缓存淘汰方法,其特征在于,所述方法包括:
设置第一队列和第二队列,其中,所述第一队列用于维护缓存数据及每个所述数据对应的编码,所述第二队列用于维护每个所述数据的所述编码和每秒查询率;
接收所要查询的数据的所述编码;及
根据所述编码向所述第一队列发起查询操作,并在未查询到所述编码时更新所述第一队列和所述第二队列,对所述第一队列中的冷数据进行淘汰。
2.根据权利要求1所述的缓存淘汰方法,其特征在于,所述更新所述第一队列和所述第二队列,对所述第一队列中的冷数据进行淘汰包括:
查看所述编码是否在所述第二队列中;
当所述编码不在所述第二队列中时,将所述编码插入所述第二队列,且将所述编码对应的当前每秒查询率CQPS和上一次每秒查询率PQPS均初始化为0。
3.根据权利要求2所述的缓存淘汰方法,其特征在于,所述更新所述第一队列和所述第二队列,对所述第一队列中的冷数据进行淘汰还包括:
当所述编码存在所述第二队列中时,将所述编码对应的所述PQPS赋值为已记录的所述CQPS的值,并重新计算新的所述CQPS的值;
根据更新后的所述PQPS和所述CQPS的值判断是否将所述编码对应的所述数据保存到所述第一队列中。
4.根据权利要求3所述的缓存淘汰方法,其特征在于,所述根据更新后的所述PQPS和所述CQPS的值判断是否将所述编码对应的所述数据保存到所述第一队列中包括:
根据所述PQPS和所述CQPS的值以及预设的计算因子Factor计算所述编码的每秒查询率KQPS,其中KQPS=CQPS*Factor+PQPS*(1-Factor);
计算所有所述编码对应的每秒查询率总和TQPS;
比较所述KQPS与所述TQPS的比值是否大于预设的阈值;
当所述KQPS与所述TQPS的比值大于所述阈值时,将所述编码对应的所述数据保存到所述第一队列中。
5.根据权利要求3或4所述的缓存淘汰方法,其特征在于,所述将所述编码对应的所述数据保存到所述第一队列中包括:
将所述编码对应的所述数据插入到所述第一队列的头部,并淘汰所述第一队列尾部的数据。
6.根据权利要求2所述的缓存淘汰方法,其特征在于,所述将所述编码插入所述第二队列包括:
将所述编码插入到所述第二队列的头部,并淘汰所述第二队列尾部的编码。
7.根据权利要求1所述的缓存淘汰方法,其特征在于,所述方法在根据所述编码向所述第一队列发起查询操作后还包括:
当从所述第一队列中查询到所述编码时,从所述第一队列中获取所述编码对应的所述数据并返回;
当从所述第一队列中未查询到所述编码时,从数据源处获取所述编码对应的所述数据并返回。
8.一种缓存淘汰系统,其特征在于,所述系统包括:
设置模块,用于设置第一队列和第二队列,其中,所述第一队列用于维护缓存数据及每个所述数据对应的唯一编码,所述第二队列用于维护每个所述数据的所述编码和每秒查询率;
接收模块,用于接收所要查询的数据的所述编码;
查询模块,用于根据所述编码向所述第一队列发起查询操作;
更新模块,用于在未查询到所述编码时更新所述第一队列和所述第二队列,对所述第一队列中的冷数据进行淘汰。
9.一种电子装置,其特征在于,所述电子装置包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的缓存淘汰程序,所述缓存淘汰程序被所述处理器执行时实现如权利要求1至7中任一项所述的缓存淘汰方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有缓存淘汰程序,所述缓存淘汰程序被处理器执行时实现如权利要求1至7中任一项所述的缓存淘汰方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110576609.3A CN113268440B (zh) | 2021-05-26 | 2021-05-26 | 缓存淘汰方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110576609.3A CN113268440B (zh) | 2021-05-26 | 2021-05-26 | 缓存淘汰方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113268440A true CN113268440A (zh) | 2021-08-17 |
CN113268440B CN113268440B (zh) | 2022-08-02 |
Family
ID=77232840
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110576609.3A Active CN113268440B (zh) | 2021-05-26 | 2021-05-26 | 缓存淘汰方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113268440B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114138186A (zh) * | 2021-11-10 | 2022-03-04 | 杭州当虹科技股份有限公司 | 一种可动态调节的缓存方法和装置 |
CN117149836A (zh) * | 2023-10-27 | 2023-12-01 | 联通在线信息科技有限公司 | 一种缓存处理方法和装置 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050171979A1 (en) * | 2004-02-04 | 2005-08-04 | Alacritus, Inc. | Method and system for maintaining data in a continuous data protection system |
CN1673981A (zh) * | 2004-03-23 | 2005-09-28 | 国际商业机器公司 | 用于平衡多个存储器缓冲区大小的系统及其方法 |
CN105677579A (zh) * | 2014-11-20 | 2016-06-15 | 博雅网络游戏开发(深圳)有限公司 | 缓存系统中的数据访问方法和系统 |
CN109656939A (zh) * | 2018-12-24 | 2019-04-19 | 广州虎牙信息科技有限公司 | 一种缓存更新方法、装置、设备和存储介质 |
CN110908612A (zh) * | 2019-11-27 | 2020-03-24 | 腾讯科技(深圳)有限公司 | 缓存管理方法、装置、设备及存储介质 |
CN111061654A (zh) * | 2019-11-11 | 2020-04-24 | 支付宝(杭州)信息技术有限公司 | 缓存刷新处理方法及装置和电子设备 |
CN111290974A (zh) * | 2018-12-07 | 2020-06-16 | 北京忆恒创源科技有限公司 | 用于存储设备的缓存淘汰方法与存储设备 |
CN111339143A (zh) * | 2020-02-27 | 2020-06-26 | 郑州阿帕斯数云信息科技有限公司 | 数据缓存方法、装置及云服务器 |
CN111522880A (zh) * | 2020-04-24 | 2020-08-11 | 桂林电子科技大学 | 一种基于mysql数据库集群的提升数据读写性能的方法 |
CN112416569A (zh) * | 2020-09-17 | 2021-02-26 | 上海哔哩哔哩科技有限公司 | 缓存内存调整方法、装置及计算机设备 |
-
2021
- 2021-05-26 CN CN202110576609.3A patent/CN113268440B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050171979A1 (en) * | 2004-02-04 | 2005-08-04 | Alacritus, Inc. | Method and system for maintaining data in a continuous data protection system |
CN1673981A (zh) * | 2004-03-23 | 2005-09-28 | 国际商业机器公司 | 用于平衡多个存储器缓冲区大小的系统及其方法 |
CN105677579A (zh) * | 2014-11-20 | 2016-06-15 | 博雅网络游戏开发(深圳)有限公司 | 缓存系统中的数据访问方法和系统 |
CN111290974A (zh) * | 2018-12-07 | 2020-06-16 | 北京忆恒创源科技有限公司 | 用于存储设备的缓存淘汰方法与存储设备 |
CN109656939A (zh) * | 2018-12-24 | 2019-04-19 | 广州虎牙信息科技有限公司 | 一种缓存更新方法、装置、设备和存储介质 |
CN111061654A (zh) * | 2019-11-11 | 2020-04-24 | 支付宝(杭州)信息技术有限公司 | 缓存刷新处理方法及装置和电子设备 |
CN110908612A (zh) * | 2019-11-27 | 2020-03-24 | 腾讯科技(深圳)有限公司 | 缓存管理方法、装置、设备及存储介质 |
CN111339143A (zh) * | 2020-02-27 | 2020-06-26 | 郑州阿帕斯数云信息科技有限公司 | 数据缓存方法、装置及云服务器 |
CN111522880A (zh) * | 2020-04-24 | 2020-08-11 | 桂林电子科技大学 | 一种基于mysql数据库集群的提升数据读写性能的方法 |
CN112416569A (zh) * | 2020-09-17 | 2021-02-26 | 上海哔哩哔哩科技有限公司 | 缓存内存调整方法、装置及计算机设备 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114138186A (zh) * | 2021-11-10 | 2022-03-04 | 杭州当虹科技股份有限公司 | 一种可动态调节的缓存方法和装置 |
CN114138186B (zh) * | 2021-11-10 | 2024-02-23 | 杭州当虹科技股份有限公司 | 一种可动态调节的缓存方法和装置 |
CN117149836A (zh) * | 2023-10-27 | 2023-12-01 | 联通在线信息科技有限公司 | 一种缓存处理方法和装置 |
CN117149836B (zh) * | 2023-10-27 | 2024-02-27 | 联通在线信息科技有限公司 | 一种缓存处理方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN113268440B (zh) | 2022-08-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113268440B (zh) | 缓存淘汰方法及系统 | |
CN111400308B (zh) | 缓存数据的处理方法、电子装置及可读存储介质 | |
CN111176560B (zh) | 一种缓存管理方法、装置、计算机设备及存储介质 | |
CN109446114B (zh) | 一种空间数据缓存方法、装置和存储介质 | |
EP2799996A1 (en) | Information processing apparatus, control circuit, control program, and control method | |
CN112417350B (zh) | 数据存储调整方法、装置及计算机设备 | |
CN112559386A (zh) | 提升ssd性能的方法、装置、计算机设备及存储介质 | |
CN113094392A (zh) | 数据缓存的方法和装置 | |
CN116991855B (zh) | 哈希表处理方法、装置、设备、介质、控制器及固态硬盘 | |
CN111291083B (zh) | 网页源码数据处理方法、装置及计算机设备 | |
CN110554914B (zh) | 资源锁管理方法、装置、服务器及存储介质 | |
CN109446111B (zh) | 存储器集成电路及其预取地址决定方法 | |
US7529891B2 (en) | Balanced prefetching exploiting structured data | |
CN113342822B (zh) | 基于多类型数据库的数据查询方法、装置、电子设备及介质 | |
CN111913913A (zh) | 访问请求的处理方法和装置 | |
EP3550446A1 (en) | Updating cache data | |
CN116027982A (zh) | 数据处理方法、设备及可读存储介质 | |
CN111131393B (zh) | 用户活跃度数据统计方法、电子装置及存储介质 | |
CN108255417B (zh) | 数据访问方法、电子装置及可读存储介质 | |
CN115080459A (zh) | 缓存管理方法及装置、计算机可读存储介质 | |
CN111104528B (zh) | 图片获取方法、装置及客户端 | |
US20030140199A1 (en) | Cache line purge and update instruction | |
CN111159232A (zh) | 一种数据缓存方法及系统 | |
CN110716689A (zh) | 数据处理方法、装置及计算设备 | |
CN117493400B (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 |