CN112015674B - 基于多层级的缓存资源访问方法、装置和计算机设备 - Google Patents
基于多层级的缓存资源访问方法、装置和计算机设备 Download PDFInfo
- Publication number
- CN112015674B CN112015674B CN202010879398.6A CN202010879398A CN112015674B CN 112015674 B CN112015674 B CN 112015674B CN 202010879398 A CN202010879398 A CN 202010879398A CN 112015674 B CN112015674 B CN 112015674B
- Authority
- CN
- China
- Prior art keywords
- cache
- resource
- level
- promotion
- target
- 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
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/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0811—Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本申请涉及数据缓存,提供一种基于多层级的缓存资源访问方法、装置和计算机设备。所述方法包括:当确定同一客户端对相同缓存资源的访问频率达到预设缓存晋升阈值时,触发缓存晋升指令,并生成缓存晋升消息,将缓存晋升消息广播至各应用实例,使得各应用实例根据缓存晋升消息,基于预设业务缓存规则将初始二级缓存晋升为新的一级缓存。当基于多级缓存,命中与目标缓存资源对应的资源识别标识时,将所命中的目标缓存资源反馈至客户端。本申请还涉及区块链技术,缓存资源可存储于区块链中。本方法通过设置缓存晋升机制,在客户端重复访问时可从多个一级缓存提取目标缓存资源,实现对本地一级缓存的有效利用,缩短缓存链路,将缓存资源反馈至客户端。
Description
技术领域
本申请涉及互联网技术领域,特别是涉及一种基于多层级的缓存资源访问方法、装置和计算机设备。
背景技术
随着互联网技术的发展,以及人们日常工作生活中对各类数据或资源的访问需求日益递增,为提升用户体验,需在较短时间内将用户所需的资源及时反馈。传统上多采用缓存机制实现,其中,缓存机制用于提升互联网应用性能,可降低数据库或文件等资源的访问频次,使其正常工作,并提升整体系统的稳定性。
目前现有的缓存机制包括:利用缓存中间件即二级缓存,比如Redis或memcache,或使用本地内存即一级缓存,比如encache或guava cache等,以实现避免每次反馈用户所需资源时,均需实时从数据库中获取,对数据库造成较大访问压力。
然而传统的缓存机制中,由于所采用的缓存中间件均存在相应的吞吐量瓶颈,并不能够无限制地承载客户端的高并发访问,一旦访问量到达一定程度后,缓存中间件也将无法正常运行。而采用本地内存的方式目前无法满足分布式的需求,运用范围不够大,实用性较差。因此,传统的缓存机制在高并发访问的情形下,无法及时响应用户访问需求并提供响应数据资源的问题,导致资源获取效率较低。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提高资源获取效率的基于多层级的缓存资源访问方法、装置和计算机设备。
一种基于多层级的缓存资源访问方法,所述方法包括:
当确定同一客户端对相同缓存资源的访问频率达到预设缓存晋升阈值时,触发缓存晋升指令;
根据所述缓存晋升指令生成对应的缓存晋升消息;
将所述缓存晋升消息广播至各应用实例,使得各所述应用实例根据所接收到的缓存晋升消息,基于预设业务缓存规则,将初始二级缓存晋升为新的一级缓存;
基于多级缓存进行目标缓存资源获取,当命中与所述目标缓存资源对应的资源识别标识时,将所命中的目标缓存资源反馈至对应的客户端;所述多级缓存包括一级缓存和二级缓存。
在其中一个实施例中,所述当确定同一客户端对相同缓存资源的访问频率达到预设缓存晋升阈值时,触发缓存晋升指令,包括:
获取预设统计单位时间和预设缓存晋升阈值;
在所述预设统计单位时间内,获取同一客户端对相同缓存资源的访问频率;
将所述访问频率与所述预设缓存晋升阈值进行对比;
当确定所述访问频率达到预设缓存晋升阈值时,触发缓存晋升指令。
在其中一个实施例中,所述基于多级缓存进行目标缓存资源获取,当命中与所述目标缓存资源对应的资源识别标识时,将所命中的目标缓存资源反馈至对应的客户端,包括:
获取客户端基于多级缓存发起的资源访问请求,并获取所述资源访问请求携带的资源识别标识;
根据所述资源识别标识在所述一级缓存进行检索;
当在所述一级缓存中未命中与所述资源识别标识对应的目标缓存资源时,根据所述资源识别标识在所述二级缓存进行检索;
当在所述二级缓存中命中与所述资源识别标识对应的目标缓存资源时,将所命中的目标缓存资源反馈至对应的客户端。
在其中一个实施例中,所述多级缓存还包括数据库缓存;所述基于多级缓存进行目标缓存资源获取,当命中与所述目标缓存资源对应的资源识别标识时,将所命中的目标缓存资源反馈至对应的客户端,还包括:
当在所述二级缓存中未命中与所述资源识别标识对应的目标缓存资源时,确定与所述资源识别标识对应的数据库;
根据所述资源识别标识,在所确定的所述数据库中提取对应的目标缓存资源,将所命中的目标缓存资源缓存至所述二级缓存;
将所命中的目标缓存资源反馈至对应的客户端。
在其中一个实施例中,在所述当确定同一客户端对相同缓存资源的访问频率达到预设缓存晋升阈值时,触发缓存晋升指令之前,还包括:
获取预设检测周期;
在所述预设检测周期内,检测各个客户端发起的资源访问请求;
提取所述资源访问请求携带的资源识别标识;
根据所述资源识别标识,统计同一客户端对相同资源识别标识对应的缓存资源的访问频率,并存储。
在其中一个实施例中,所述将所述缓存晋升消息广播至各应用实例,使得各所述应用实例根据所接收到的缓存晋升消息,基于预设业务缓存规则,将初始二级缓存晋升为新的一级缓存,包括:
将所述缓存晋升消息广播至各应用实例,使得各所述应用实例解析所接收到的缓存晋升消息,根据解析结果确定匹配的预设业务缓存规则,并基于所述预设业务缓存规则,将多级缓存中的初始二级缓存晋升为新的一级缓存。
在其中一个实施例中,所述方法还包括:
基于所述预设业务缓存规则,设置所述新的一级缓存的过期时间;
当达到所述过期时间时,将所述新的一级缓存还原成对应的初始二级缓存。
一种基于多层级的缓存资源访问装置,所述装置包括:
缓存晋升指令触发模块,用于当确定同一客户端对相同缓存资源的访问频率达到预设缓存晋升阈值时,触发缓存晋升指令;
缓存晋升消息生成模块,用于根据所述缓存晋升指令生成对应的缓存晋升消息;
缓存晋升模块,用于将所述缓存晋升消息广播至各应用实例,使得各所述应用实例根据所接收到的缓存晋升消息,基于预设业务缓存规则,将初始二级缓存晋升为新的一级缓存;
目标缓存资源获取模块,用于基于多级缓存进行目标缓存资源获取,当命中与所述目标缓存资源对应的资源识别标识时,将所命中的目标缓存资源反馈至对应的客户端;所述多级缓存包括一级缓存和二级缓存。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
当确定同一客户端对相同缓存资源的访问频率达到预设缓存晋升阈值时,触发缓存晋升指令;
根据所述缓存晋升指令生成对应的缓存晋升消息;
将所述缓存晋升消息广播至各应用实例,使得各所述应用实例根据所接收到的缓存晋升消息,基于预设业务缓存规则,将初始二级缓存晋升为新的一级缓存;
基于多级缓存进行目标缓存资源获取,当命中与所述目标缓存资源对应的资源识别标识时,将所命中的目标缓存资源反馈至对应的客户端;所述多级缓存包括一级缓存和二级缓存。
一种计算机存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
当确定同一客户端对相同缓存资源的访问频率达到预设缓存晋升阈值时,触发缓存晋升指令;
根据所述缓存晋升指令生成对应的缓存晋升消息;
将所述缓存晋升消息广播至各应用实例,使得各所述应用实例根据所接收到的缓存晋升消息,基于预设业务缓存规则,将初始二级缓存晋升为新的一级缓存;
基于多级缓存进行目标缓存资源获取,当命中与所述目标缓存资源对应的资源识别标识时,将所命中的目标缓存资源反馈至对应的客户端;所述多级缓存包括一级缓存和二级缓存。
上述基于多层级的缓存资源访问方法、装置和计算机设备,当确定同一客户端对相同缓存资源的访问频率达到预设缓存晋升阈值时,触发缓存晋升指令,并根据缓存晋升指令生成对应的缓存晋升消息。将缓存晋升消息广播至各应用实例,使得各应用实例根据所接收到的缓存晋升消息,基于预设业务缓存规则,将初始二级缓存晋升为新的一级缓存。进而基于包括一级缓存和二级缓存的多级缓存,进行目标缓存资源获取,当命中与目标缓存资源对应的资源识别标识时,将所命中的目标缓存资源反馈至对应的客户端。该方法通过设置二级缓存晋升成一级缓存的机制,可在客户端重复进行资源访问时,快速从多个一级缓存中提取到目标缓存资源,从而降低二级缓存中单个资源高频次数访问概率,实现对本地一级缓存的有效利用,缩短了缓存链路,快速而及时地将缓存资源反馈至相应客户端。
附图说明
图1为一个实施例中基于多层级的缓存资源访问方法的应用场景图;
图2为一个实施例中基于多层级的缓存资源访问方法的流程示意图;
图3为一个实施例中将所命中的目标缓存资源反馈至对应的客户端的流程示意图;
图4为另一个实施例中将所命中的目标缓存资源反馈至对应的客户端的流程示意图;
图5为另一个实施例中基于多层级的缓存资源访问方法的流程示意图;
图6为一个实施例中基于多层级的缓存资源访问系统的整体架构示意图;
图7为一个实施例中消息中间件的部署架构示意图;
图8为一个实施例中基于多层级的缓存资源访问装置的结构框图;
图9为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的基于多层级的缓存资源访问方法,可以应用于如图1所示的应用环境中。其中,客户端102通过网络与服务器104通过网络进行通信。当确定同一客户端102对相同缓存资源的访问频率达到预设缓存晋升阈值时,触发缓存晋升指令,并根据缓存晋升指令生成对应的缓存晋升消息。服务器104基于消息中间件,将缓存晋升消息广播至各应用实例,使得各应用实例根据所接收到的缓存晋升消息,基于预设业务缓存规则,将初始二级缓存晋升为新的一级缓存。基于多级缓存实现目标缓存资源的获取,当命中与目标缓存资源对应的资源识别标识时,将所命中的目标缓存资源反馈至对应的客户端102。其中,多级缓存包括一级缓存和二级缓存。其中,客户端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
在一个实施例中,如图2所示,提供了一种基于多层级的缓存资源访问方法,以该方法应用于图1中的服务器为例进行说明,包括以下步骤:
步骤S202,当确定同一客户端对相同缓存资源的访问频率达到预设缓存晋升阈值时,触发缓存晋升指令。
具体地,通过获取预设统计单位时间和预设缓存晋升阈值,在所获取的预设统计单位时间内,获取各个客户端发起的对不同缓存资源的资源访问请求,并统计各个客户端对不同缓存资源的访问频率。其中,各个客户端对不同缓存资源的访问频率,包括同一客户端对相同缓存资源的访问频率,同一客户端对不同缓存资源的访问频率,以及不同客户端对相同缓存资源的访问频率。
其中,同一客户端对相同缓存资源的访问频率,表示同一客户端对同一缓存资源重复发起资源访问请求,且访问需求量大。同一客户端对不同缓存资源的访问频率,表示同一客户端对多个缓存资源的不同访问需求,不同客户端对相同缓存资源访问频率,表示该缓存资源对各个客户端来说均存在访问需求,可确定该缓存资源为热门访问资源。
进一步地,通过将同一客户端对相同缓存资源的访问频率与预设缓存晋升阈值进行对比,生成对应的比对结果。当根据比对结果,确定访问频率达到预设缓存晋升阈值时,触发缓存晋升指令。其中,缓存晋升指令表示需将已有的二级缓存晋升为新的一级缓存。
其中,预设缓存晋升阈值从集群维度以及各应用实例ip维度进行确定,通过预设统计单位时间内,从集群维度以及各应用实例ip维度,统计得到对相同缓存资源的访问频率,并将对相同缓存资源的访问频率,作为二级缓存晋升为一级缓存中的衡量指标,即预设缓存晋升阈值。
步骤S204,根据缓存晋升指令生成对应的缓存晋升消息。
具体地,根据所触发的缓存晋升指令,生成与缓存晋升指令对应的缓存晋升消息,其中,接收到缓存晋升消息的应用实例,需要触发缓存晋升操作。
步骤S206,将缓存晋升消息广播至各应用实例,使得各应用实例根据所接收到的缓存晋升消息,基于预设业务缓存规则,将初始二级缓存晋升为新的一级缓存。
具体地,基于消息中间件,将缓存晋升消息广播至各应用实例,使得各应用实例解析所接收到的缓存晋升消息,根据解析结果确定匹配的预设业务缓存规则,并基于预设业务缓存规则,将多级缓存中的初始二级缓存晋升为新的一级缓存。
进一步地,本实施例中采用的消息中间件为RocketMq,采用消息中间件RocketMq,进行广播式通知,将缓存晋升消息发送至各个应用实例,使得各个应用实例间的数据保持同步。其中,RocketMq表示分布式、队列模型的开源消息中间件,跟其它中间件相比,RocketMq的特点是纯JAVA实现,集群和双机集群系统实现相对简单,且在发生宕机和其它故障时消息丢失率更低。
其中,预设业务缓存规则可以理解为,当检测到应用实例接收到缓存晋升消息时,表明需触发并执行缓存晋升操作,将已有的初始二级缓存晋升为新的以及缓存。
在一个实施例中,在基于预设业务缓存规则,将初始二级缓存晋升为新的一级缓存之后,还包括:
基于预设业务缓存规则,设置新的一级缓存的过期时间;
当达到过期时间时,将新的一级缓存还原成对应的初始二级缓存。
具体地,在各应用实例接收到缓存晋升消息后,基于业务场景缓存规则,将初始二级缓存晋升为新的一级缓存,并设置该些一级缓存的过期时间。其中,设置过期时间可实现在对同一缓存资源的访问频率,未达到预设缓存晋升阈值时,或理解为在所设定的过期时间之外,该缓存资源为非热门访问资源,需将存储该缓存资源的新建的一级缓存,还原成初始二级缓存,维持内存大小为可控状态,避免过多资源均存储至一级缓存,进而降低运行压力。
步骤S208,基于多级缓存进行目标缓存资源获取,当命中与目标缓存资源对应的资源识别标识时,将所命中的目标缓存资源反馈至对应的客户端。
具体地,多级缓存包括一级缓存、二级缓存和数据库缓存,其中,缓存表示将数据从读取较慢的介质上读取出来放到读取较快的介质上,如磁盘-->内存,即可将数据存储到磁盘上,如数据库。但如果每次都从数据库里去读取数据,会因为磁盘本身的IO影响读取速度,则可采用二级缓存Redis,将数据读取出来放到内存里,当需要获取数据时,可直接从内存中拿到数据返回,提高数据获取速度。但由于二级缓存Redis是单独部署成集群,会产生网络IO上的消耗,数据传输上也存在一定消耗,因此可通过设置一级缓存,即应用内缓存,如:caffeine,当一级缓存内存储有符合条件的数据时,可以直接使用,而无需通过网络到二级缓存Redis中去获取。
需要强调的是,为进一步保证上述缓存资源的私密和安全性,上述缓存资源还可以存储于一区块链的节点中。
上述基于多层级的缓存资源访问方法中,当确定同一客户端对相同缓存资源的访问频率达到预设缓存晋升阈值时,触发缓存晋升指令,并根据缓存晋升指令生成对应的缓存晋升消息。将缓存晋升消息广播至各应用实例,使得各应用实例根据所接收到的缓存晋升消息,基于预设业务缓存规则,将初始二级缓存晋升为新的一级缓存。进而基于包括一级缓存和二级缓存的多级缓存,进行目标缓存资源获取,当命中与目标缓存资源对应的资源识别标识时,将所命中的目标缓存资源反馈至对应的客户端。该方法通过设置二级缓存晋升成一级缓存的机制,可在客户端重复进行资源访问时,快速从多个一级缓存中提取到目标缓存资源,从而降低二级缓存中单个资源高频次数访问概率,实现对本地一级缓存的有效利用,缩短了缓存链路,快速而及时地将缓存资源反馈至相应客户端。
在一个实施例中,如图3所示,将所命中的目标缓存资源反馈至对应的客户端的步骤,即基于多级缓存进行目标缓存资源获取,当命中与目标缓存资源对应的资源识别标识时,将所命中的目标缓存资源反馈至对应的客户端的步骤,具体包括:
步骤S302,获取客户端基于多级缓存发起的资源访问请求,并获取资源访问请求携带的资源识别标识。
具体地,通过获取客户端基于多级缓存发起的资源访问请求,并提取资源访问请求携带的资源识别标识。其中,资源识别标识用于指示待访问的目标缓存资源,即资源缓存标识和目标缓存资源之间存在一一对应的关系。
步骤S304,根据资源识别标识在一级缓存进行检索。
具体地,当确定客户端重复发起对同一缓存资源的资源访问请求时,根据资源识别标识,在多个一级缓存即应用内缓存中进行检索,或理解为根据资源识别标识在一级缓存进行遍历操作,判断是否能够提取出与资源识别标识相对应的目标缓存资源。其中,多个一级缓存中包括由初始二级缓存晋升得到的新的一级缓存,以及初始一级缓存。
其中,当在多个一级缓存中命中与资源识别标识对应的目标缓存资源时,直接将所命中的目标缓存资源反馈至对应的客户端。而当在多个一级缓存中未命中与资源识别标识对应的目标缓存资源时,仍需在二级缓存中进行再次检索。
步骤S306,当在一级缓存中未命中与资源识别标识对应的目标缓存资源时,根据资源识别标识在二级缓存进行检索。
具体地,当在多个一级缓存中未命中与资源识别标识对应的目标缓存资源时,根据所提取的资源识别标识,在二级缓存中进行遍历操作,判断是否能够提取出与资源识别标识相对应的目标缓存资源。
步骤S308,当在二级缓存中命中与资源识别标识对应的目标缓存资源时,将所命中的目标缓存资源反馈至对应的客户端。
具体地,当在二级缓存中命中与资源识别标识对应的目标缓存资源时,将所命中的目标缓存资源反馈至对应的客户端。而当在二级缓存中未命中与资源识别标识对应的目标缓存资源时,表示当前二级缓存Redis中不存在对应的目标缓存资源,还需在多级缓存中的其他缓存中进行进一步的检索,直至成功提取到与资源识别标识对应的目标缓存资源。
本实施例中,通过获取客户端基于多级缓存发起的资源访问请求,并提取资源访问请求携带的资源识别标识,继而根据资源识别标识在一级缓存进行检索。当在一级缓存中未命中与资源识别标识对应的目标缓存资源时,根据资源识别标识在二级缓存进行检索。而当在二级缓存中命中与资源识别标识对应的目标缓存资源时,将所命中的目标缓存资源反馈至对应的客户端。实现了多层级的缓存资源访问,而无需每次均从数据库中获取相应目标缓存资源,减少了与数据库的交互,避免出现数据库热块问题,进一步提高资源获取效率。
在一个实施例中,如图4所示,将所命中的目标缓存资源反馈至对应的客户端的步骤,即基于多级缓存进行目标缓存资源获取,当命中与目标缓存资源对应的资源识别标识时,将所命中的目标缓存资源反馈至对应的客户端的步骤,还包括:
步骤S402,当在二级缓存中未命中与资源识别标识对应的目标缓存资源时,确定与资源识别标识对应的数据库。
具体地,当在二级缓存中未命中与资源识别标识对应的目标缓存资源时,根据所提取的资源识别标识,确定资源识别标识对应的缓存资源类型,根据缓存资源类型确定对应的数据库。
步骤S404,根据资源识别标识,在所确定的数据库中提取对应的目标缓存资源,将所命中的目标缓存资源缓存至二级缓存。
具体地,根据所提取的资源识别标识,在所确定的数据库中进行遍历操作,将从数据库中确定出的与资源识别标识对应的目标缓存资源,存储至二级缓存Redis中。通过将所确定出的目标缓存资源存储至二级缓存中,后续如再次检测到针对该缓存资源的访问请求,则可直接从二级缓存中提取,无需再次从数据库中获取,降低对数据库中同一缓存资源的高频访问机率。
步骤S406,将所命中的目标缓存资源反馈至对应的客户端。
具体地,通过将从数据库中命中的目标缓存资源,反馈至发起相应资源访问请求的客户端。
本实施例中,当在二级缓存中未命中与资源识别标识对应的目标缓存资源时,确定与资源识别标识对应的数据库。根据资源识别标识,在所确定的数据库中提取对应的目标缓存资源,将所命中的目标缓存资源缓存至二级缓存,并将所命中的目标缓存资源反馈至对应的客户端。实现了当后续再次检测到针对该缓存资源的访问请求,则可直接从二级缓存中提取,无需再次从数据库中获取,降低对数据库中同一缓存资源的高频访问机率,较少数据热块问题,进一步提高资源获取效率。
在一个实施例中,提供了一种基于多层级的缓存资源访问方法,在当确定同一客户端对相同缓存资源的访问频率达到预设缓存晋升阈值时,触发缓存晋升指令之前,还包括:
获取预设检测周期;
在预设检测周期内,检测各个客户端发起的资源访问请求;
提取资源访问请求携带的资源识别标识;
根据资源识别标识,统计同一客户端对相同资源识别标识对应的缓存资源的访问频率,并存储。
具体地,通过获取预设检测周期,并在预设检测周期内,分别检测多个客户端发起的资源访问请求。其中,不同客户端发起的资源访问请求,包括:同一客户端对相同缓存资源发起的资源访问请求,不同客户端对同一缓存资源发起的资源访问请求,以及同一客户端对不同缓存资源发起的资源访问请求。
其中,通过提取所检测到的资源访问请求携带的资源识别标识,根据资源识别标识,可确定对应资源访问请求需要访问的目标缓存资源。
进一步地,根据资源识别标识,统计同一客户端对相同资源识别标识对应的目标缓存资源的访问频率,并将统计得到的访问频率进行存储。后续可根据所统计的访问频率,确定是否需要执行缓存晋升操作。
本实施例中,通过在预设检测周期内,检测各个客户端发起的资源访问请求,并提取资源访问请求携带的资源识别标识,进而根据资源识别标识,统计同一客户端对相同资源识别标识对应的缓存资源的访问频率,后续可根据所统计的访问频率,确定是否需要执行缓存晋升操作,无需重复进行统计,减少资源获取过程的操作流程,提高资源获取效率。
在一个实施例中,如图5所示,提供了一种基于多层级的缓存资源访问方法,具体包括以下步骤:
1)在预设检测周期内,检测各个客户端发起的资源访问请求。
2)提取资源访问请求携带的资源识别标识,并根据资源识别标识,统计同一客户端对相同资源识别标识对应的缓存资源的访问频率。
3)获取同一客户端对相同缓存资源的访问频率,并将访问频率与预设缓存晋升阈值进行对比。
4)当确定访问频率达到预设缓存晋升阈值时,触发缓存晋升指令,并根据缓存晋升指令生成对应的缓存晋升消息。
5)将缓存晋升消息广播至各应用实例,使得各应用实例根据所接收到的缓存晋升消息,基于预设业务缓存规则,将初始二级缓存晋升为新的一级缓存。
6)基于预设业务缓存规则,设置新的一级缓存的过期时间,当达到过期时间时,将新的一级缓存还原成对应的初始二级缓存。
7)提取客户端基于多级缓存发起的资源访问请求携带的资源识别标识。
8)根据资源识别标识在一级缓存进行检索,当在一级缓存中命中与资源识别标识对应的目标缓存资源时,将所命中的目标缓存资源反馈至对应的客户端。
9)当在一级缓存中未命中与资源识别标识对应的目标缓存资源时,根据资源识别标识在二级缓存进行检索,当在二级缓存中命中与资源识别标识对应的目标缓存资源时,将所命中的目标缓存资源反馈至对应的客户端。
10)当在二级缓存中未命中与资源识别标识对应的目标缓存资源时,确定与资源识别标识对应的数据库;
11)根据资源识别标识,在所确定的数据库中提取对应的目标缓存资源,将所命中的目标缓存资源缓存至二级缓存,并将所命中的目标缓存资源反馈至对应的客户端。
本实施例中,当确定同一客户端对相同缓存资源的访问频率达到预设缓存晋升阈值时,触发缓存晋升指令,并根据缓存晋升指令生成对应的缓存晋升消息。将缓存晋升消息广播至各应用实例,使得各应用实例根据所接收到的缓存晋升消息,基于预设业务缓存规则,将初始二级缓存晋升为新的一级缓存。进而基于包括一级缓存和二级缓存的多级缓存,进行目标缓存资源获取,当命中与目标缓存资源对应的资源识别标识时,将所命中的目标缓存资源反馈至对应的客户端。该方法通过设置二级缓存晋升成一级缓存的机制,可在客户端重复进行资源访问时,快速从多个一级缓存中提取到目标缓存资源,从而降低二级缓存中单个资源高频次数访问概率,实现对本地一级缓存的有效利用,缩短了缓存链路,快速而及时地将缓存资源反馈至相应客户端。
在一个实施例中,如图6所示,提供了一种基于多层级的缓存资源访问系统的整体架构,参照图6,基于多层级的缓存资源访问系统中,包括发起资源访问请求的多个客户端,接收客户端发起资源访问请求的多个应用实例,包括应用实例A、B、C等,多个一级缓存,以及相应的二级缓存Redis,用于广播缓存晋升消息的消息中间件RocketMq,以及数据库缓存。
其中,当客户端发起资源访问请求时,到达应用实施例A时,先进行一级缓存检索,如果在一级缓存中命中与资源访问请求对应的目标缓存资源,则直接将所命中的目标缓存资源返回至客户端。而当在一级缓存中未命中与资源访问请求对应的目标缓存资源时,则在二级缓存Redis中进行检索,如果在二级缓存Redis中命中资源访问请求对应的目标缓存资源,直接将所命中的目标缓存资源返回至客户端。同样地,当在二级缓存Redis中未命中与资源访问请求对应的目标缓存资源时,访问数据库缓存,从数据库缓存中提取与资源访问请求对应的目标缓存资源,将从数据库缓存中提取到的目标缓存资源存储至二级缓存Redis中,并将目标缓存资源反馈至客户端。
具体地,当检测到同一客户端在预设统计单位时间内,重复发起对相同缓存资源的资源访问请求时,获取同一客户端对相同缓存资源的访问频率,并将访问频率与预设缓存晋升阈值进行对比,当确定访问频率达到预设缓存晋升阈值时,触发缓存晋升指令,并根据缓存晋升指令生成对应的缓存晋升消息。基于消息中间件RocketMq,将缓存晋升消息广播至各应用实例,使得各应用实例根据所接收到的缓存晋升消息,基于预设业务缓存规则,将初始二级缓存晋升为新的一级缓存,并为新的一级缓存设置过期时间。
进一步地,如在完成缓存晋升之后,再次检测到同一客户端重复发起的资源访问请求时,首先分别在多个新晋升的一级缓存以及初始一级缓存中进行检索,判定是否成功命中与资源获取请求携带的资源识别标识对应的缓存资源。当成功命中,即获取到与资源获取请求携带的资源识别标识对应的缓存资源时,即可将缓存资源反馈至对应的客户端。只有当在多个一级缓存中均未成功命中时,才进一步从二级缓存Redis中进行检索,如仍未命中,则直接从数据库中获取该缓存资源,并将其反馈至对应客户端,同时将提取到的缓存资源存储至二级缓存Redis中,后续如再次检测到针对该缓存资源的访问请求,则可从二级缓存中提取,无需再次从数据库中获取,降低对数据库中同一缓存资源的高频访问机率。
在一个实施例中,如图7所示,提供了一种消息中间件RocketMq的部署架构,消息中间件RocketMq包括核心四大组件:名称服务器Name Server、消息服务器Broker、生产者Producer以及消费者Consumer,每个组件都可以部署成集群模式进行水平扩展。
其中,生产者负责产生消息,并向消息服务器发送由业务应用程序系统生成的消息。消费者负责消费消息,从消息服务器拉取信息并将其输入用户应用程序。消息服务器表示消息存储中心,用于接收来自生产者的消息并存储,还存储与消息相关的元数据,包括用户组、消费进度偏移量、队列信息等。
参照图7,消息服务器包括Master和Slave两种类型,Master既可读可写,Slave可读不可写。名称服务器用来保存消息服务器的相关元信息,并给生产者和消费者查找消息服务器的信息。名称服务器可以横向扩展,且节点之间相互之间无通信,通过部署多台机器来标记自己是一个伪集群。每个消息服务器在启动的时候会到名称服务器注册,生产者在发送消息前会根据Topic到名称服务器获取到消息服务器的路由信息,消费者也会定时获取Topic的路由信息。
应该理解的是,虽然图2-5的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2-5中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图8所示,提供了一种基于多层级的缓存资源访问装置,包括:缓存晋升指令触发模块802、缓存晋升消息生成模块804、缓存晋升模块806以及目标缓存资源获取模块808,其中:
缓存晋升指令触发模块802,用于当确定同一客户端对相同缓存资源的访问频率达到预设缓存晋升阈值时,触发缓存晋升指令。
缓存晋升消息生成模块804,用于根据缓存晋升指令生成对应的缓存晋升消息。
缓存晋升模块806,用于将缓存晋升消息广播至各应用实例,使得各应用实例根据所接收到的缓存晋升消息,基于预设业务缓存规则,将初始二级缓存晋升为新的一级缓存。
目标缓存资源获取模块808,用于基于多级缓存进行目标缓存资源获取,当命中与目标缓存资源对应的资源识别标识时,将所命中的目标缓存资源反馈至对应的客户端,多级缓存包括一级缓存和二级缓存。
上述基于多层级的缓存资源访问装置,当确定同一客户端对相同缓存资源的访问频率达到预设缓存晋升阈值时,触发缓存晋升指令,并根据缓存晋升指令生成对应的缓存晋升消息。将缓存晋升消息广播至各应用实例,使得各应用实例根据所接收到的缓存晋升消息,基于预设业务缓存规则,将初始二级缓存晋升为新的一级缓存。进而基于包括一级缓存和二级缓存的多级缓存,进行目标缓存资源获取,当命中与目标缓存资源对应的资源识别标识时,将所命中的目标缓存资源反馈至对应的客户端。该方法通过设置二级缓存晋升成一级缓存的机制,可在客户端重复进行资源访问时,快速从多个一级缓存中提取到目标缓存资源,从而降低二级缓存中单个资源高频次数访问概率,实现对本地一级缓存的有效利用,缩短了缓存链路,快速而及时地将缓存资源反馈至相应客户端。
在一个实施例中,目标缓存资源获取模块还用于:
获取客户端基于多级缓存发起的资源访问请求,并获取资源访问请求携带的资源识别标识;根据资源识别标识在一级缓存进行检索;当在一级缓存中未命中与资源识别标识对应的目标缓存资源时,根据资源识别标识在二级缓存进行检索;当在二级缓存中命中与资源识别标识对应的目标缓存资源时,将所命中的目标缓存资源反馈至对应的客户端。
本实施例中,实现了多层级的缓存资源访问,而无需每次均从数据库中获取相应目标缓存资源,减少了与数据库的交互,避免出现数据库热块问题,进一步提高资源获取效率。
在一个实施例中,目标缓存资源获取模块还用于:
当在二级缓存中未命中与资源识别标识对应的目标缓存资源时,确定与资源识别标识对应的数据库;根据资源识别标识,在所确定的数据库中提取对应的目标缓存资源,将所命中的目标缓存资源缓存至二级缓存;将所命中的目标缓存资源反馈至对应的客户端。
本实施例中,实现了当后续再次检测到针对该缓存资源的访问请求,则可直接从二级缓存中提取,无需再次从数据库中获取,降低对数据库中同一缓存资源的高频访问机率,较少数据热块问题,进一步提高资源获取效率。
在一个实施例中,提供了一种基于多层级的缓存资源访问装置,还包括访问频率统计模块,用于:
获取预设检测周期;在预设检测周期内,检测各个客户端发起的资源访问请求;提取资源访问请求携带的资源识别标识;根据资源识别标识,统计同一客户端对相同资源识别标识对应的缓存资源的访问频率,并存储。
本实施例中,通过在预设检测周期内,检测各个客户端发起的资源访问请求,并提取资源访问请求携带的资源识别标识,进而根据资源识别标识,统计同一客户端对相同资源识别标识对应的缓存资源的访问频率,后续可根据所统计的访问频率,确定是否需要执行缓存晋升操作,无需重复进行统计,减少资源获取过程的操作流程,提高资源获取效率。
在一个实施例中,缓存晋升指令触发模块还用于:
获取预设统计单位时间和预设缓存晋升阈值;获取同一客户端对相同缓存资源的访问频率;将访问频率与预设缓存晋升阈值进行对比;当确定访问频率达到预设缓存晋升阈值时,触发缓存晋升指令。
在一个实施例中,缓存晋升模块还用于:
将缓存晋升消息广播至各应用实例,使得各应用实例解析所接收到的缓存晋升消息,根据解析结果确定匹配的预设业务缓存规则,并基于预设业务缓存规则,将多级缓存中的初始二级缓存晋升为新的一级缓存。
在一个实施例中,缓存晋升模块还用于:
基于预设业务缓存规则,设置新的一级缓存的过期时间;当达到过期时间时,将新的一级缓存还原成对应的初始二级缓存。
关于基于多层级的缓存资源访问装置的具体限定可以参见上文中对于基于多层级的缓存资源访问方法的限定,在此不再赘述。上述基于多层级的缓存资源访问装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图9所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储目标缓存资源。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种基于多层级的缓存资源访问方法。
本领域技术人员可以理解,图9中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,该存储器存储有计算机程序,该处理器执行计算机程序时实现以下步骤:
当确定同一客户端对相同缓存资源的访问频率达到预设缓存晋升阈值时,触发缓存晋升指令;
根据缓存晋升指令生成对应的缓存晋升消息;
将缓存晋升消息广播至各应用实例,使得各应用实例根据所接收到的缓存晋升消息,基于预设业务缓存规则,将初始二级缓存晋升为新的一级缓存;
基于多级缓存进行目标缓存资源获取,当命中与目标缓存资源对应的资源识别标识时,将所命中的目标缓存资源反馈至对应的客户端;多级缓存包括一级缓存和二级缓存。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
获取预设统计单位时间和预设缓存晋升阈值;
在预设统计单位时间内,获取同一客户端对相同缓存资源的访问频率;
将访问频率与预设缓存晋升阈值进行对比;
当确定访问频率达到预设缓存晋升阈值时,触发缓存晋升指令。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
获取客户端基于多级缓存发起的资源访问请求,并获取资源访问请求携带的资源识别标识;
根据资源识别标识在一级缓存进行检索;
当在一级缓存中未命中与资源识别标识对应的目标缓存资源时,根据资源识别标识在二级缓存进行检索;
当在二级缓存中命中与资源识别标识对应的目标缓存资源时,将所命中的目标缓存资源反馈至对应的客户端。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
当在二级缓存中未命中与资源识别标识对应的目标缓存资源时,确定与资源识别标识对应的数据库;
根据资源识别标识,在所确定的数据库中提取对应的目标缓存资源,将所命中的目标缓存资源缓存至二级缓存;
将所命中的目标缓存资源反馈至对应的客户端。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
获取预设检测周期;在预设检测周期内,检测各个客户端发起的资源访问请求;
提取资源访问请求携带的资源识别标识;根据资源识别标识,统计同一客户端对相同资源识别标识对应的缓存资源的访问频率,并存储。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
将缓存晋升消息广播至各应用实例,使得各应用实例解析所接收到的缓存晋升消息,根据解析结果确定匹配的预设业务缓存规则,并基于预设业务缓存规则,将多级缓存中的初始二级缓存晋升为新的一级缓存。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
基于预设业务缓存规则,设置新的一级缓存的过期时间;当达到过期时间时,将新的一级缓存还原成对应的初始二级缓存。
在一个实施例中,提供了一种计算机存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
当确定同一客户端对相同缓存资源的访问频率达到预设缓存晋升阈值时,触发缓存晋升指令;
根据缓存晋升指令生成对应的缓存晋升消息;
将缓存晋升消息广播至各应用实例,使得各应用实例根据所接收到的缓存晋升消息,基于预设业务缓存规则,将初始二级缓存晋升为新的一级缓存;
基于多级缓存进行目标缓存资源获取,当命中与目标缓存资源对应的资源识别标识时,将所命中的目标缓存资源反馈至对应的客户端;多级缓存包括一级缓存和二级缓存。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
获取预设统计单位时间和预设缓存晋升阈值;
在预设统计单位时间内,获取同一客户端对相同缓存资源的访问频率;
将访问频率与预设缓存晋升阈值进行对比;
当确定访问频率达到预设缓存晋升阈值时,触发缓存晋升指令。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
获取客户端基于多级缓存发起的资源访问请求,并获取资源访问请求携带的资源识别标识;
根据资源识别标识在一级缓存进行检索;
当在一级缓存中未命中与资源识别标识对应的目标缓存资源时,根据资源识别标识在二级缓存进行检索;
当在二级缓存中命中与资源识别标识对应的目标缓存资源时,将所命中的目标缓存资源反馈至对应的客户端。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
当在二级缓存中未命中与资源识别标识对应的目标缓存资源时,确定与资源识别标识对应的数据库;
根据资源识别标识,在所确定的数据库中提取对应的目标缓存资源,将所命中的目标缓存资源缓存至二级缓存;
将所命中的目标缓存资源反馈至对应的客户端。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
获取预设检测周期;在预设检测周期内,检测各个客户端发起的资源访问请求;
提取资源访问请求携带的资源识别标识;根据资源识别标识,统计同一客户端对相同资源识别标识对应的缓存资源的访问频率,并存储。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
将缓存晋升消息广播至各应用实例,使得各应用实例解析所接收到的缓存晋升消息,根据解析结果确定匹配的预设业务缓存规则,并基于预设业务缓存规则,将多级缓存中的初始二级缓存晋升为新的一级缓存。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
基于预设业务缓存规则,设置新的一级缓存的过期时间;当达到过期时间时,将新的一级缓存还原成对应的初始二级缓存。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
本发明所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种基于多层级的缓存资源访问方法,所述方法包括:
获取预设统计单位时间和预设缓存晋升阈值,并在所述预设统计单位时间内,获取同一客户端对相同缓存资源的访问频率;
将所述访问频率与所述预设缓存晋升阈值进行对比,当确定所述访问频率达到预设缓存晋升阈值时,触发缓存晋升指令;其中,通过在预设统计单位时间内,从集群维度以及各应用实例ip维度,统计得到对相同缓存资源的访问频率,并将对所述相同缓存资源的访问频率作为二级缓存晋升为一级缓存中的预设缓存晋升阈值;
根据所述缓存晋升指令生成对应的缓存晋升消息;
将所述缓存晋升消息广播至各应用实例,使得各所述应用实例解析所接收到的缓存晋升消息,根据解析结果确定匹配的预设业务缓存规则,并基于预设业务缓存规则,将多级缓存中的初始二级缓存晋升为新的一级缓存;
基于多级缓存进行目标缓存资源获取,当命中与所述目标缓存资源对应的资源识别标识时,将所命中的目标缓存资源反馈至对应的客户端;所述多级缓存包括一级缓存和二级缓存。
2.根据权利要求1所述的方法,其特征在于,所述基于多级缓存进行目标缓存资源获取,当命中与所述目标缓存资源对应的资源识别标识时,将所命中的目标缓存资源反馈至对应的客户端,包括:
获取客户端基于多级缓存发起的资源访问请求,并获取所述资源访问请求携带的资源识别标识;
根据所述资源识别标识在所述一级缓存进行检索;
当在所述一级缓存中未命中与所述资源识别标识对应的目标缓存资源时,根据所述资源识别标识在所述二级缓存进行检索;
当在所述二级缓存中命中与所述资源识别标识对应的目标缓存资源时,将所命中的目标缓存资源反馈至对应的客户端。
3.根据权利要求2所述的方法,其特征在于,所述多级缓存还包括数据库缓存;所述基于多级缓存进行目标缓存资源获取,当命中与所述目标缓存资源对应的资源识别标识时,将所命中的目标缓存资源反馈至对应的客户端,还包括:
当在所述二级缓存中未命中与所述资源识别标识对应的目标缓存资源时,确定与所述资源识别标识对应的数据库;
根据所述资源识别标识,在所确定的所述数据库中提取对应的目标缓存资源,将所命中的目标缓存资源缓存至所述二级缓存;
将所命中的目标缓存资源反馈至对应的客户端。
4.根据权利要求1至3任意一项所述的方法,其特征在于,在所述当确定同一客户端对相同缓存资源的访问频率达到预设缓存晋升阈值时,触发缓存晋升指令之前,还包括:
获取预设检测周期;
在所述预设检测周期内,检测各个客户端发起的资源访问请求;
提取所述资源访问请求携带的资源识别标识;
根据所述资源识别标识,统计同一客户端对相同资源识别标识对应的缓存资源的访问频率,并存储。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
基于所述预设业务缓存规则,设置所述新的一级缓存的过期时间;
当达到所述过期时间时,将所述新的一级缓存还原成对应的初始二级缓存。
6.一种基于多层级的缓存资源访问装置,其特征在于,所述装置包括:
缓存晋升指令触发模块,用于获取预设统计单位时间和预设缓存晋升阈值,并在所述预设统计单位时间内,获取同一客户端对相同缓存资源的访问频率;将所述访问频率与所述预设缓存晋升阈值进行对比,当确定所述访问频率达到预设缓存晋升阈值时,触发缓存晋升指令;其中,通过在预设统计单位时间内,从集群维度以及各应用实例ip维度,统计得到对相同缓存资源的访问频率,并将对所述相同缓存资源的访问频率作为二级缓存晋升为一级缓存中的预设缓存晋升阈值;
缓存晋升消息生成模块,用于根据所述缓存晋升指令生成对应的缓存晋升消息;
缓存晋升模块,用于将所述缓存晋升消息广播至各应用实例,使得各所述应用实例解析所接收到的缓存晋升消息,根据解析结果确定匹配的预设业务缓存规则,并基于预设业务缓存规则,将多级缓存中的初始二级缓存晋升为新的一级缓存;
目标缓存资源获取模块,用于基于多级缓存进行目标缓存资源获取,当命中与所述目标缓存资源对应的资源识别标识时,将所命中的目标缓存资源反馈至对应的客户端;所述多级缓存包括一级缓存和二级缓存。
7.根据权利要求6所述的装置,其特征在于,所述目标缓存资源获取模块,还用于:
获取客户端基于多级缓存发起的资源访问请求,并获取所述资源访问请求携带的资源识别标识;根据所述资源识别标识在所述一级缓存进行检索;当在所述一级缓存中未命中与所述资源识别标识对应的目标缓存资源时,根据所述资源识别标识在所述二级缓存进行检索;当在所述二级缓存中命中与所述资源识别标识对应的目标缓存资源时,将所命中的目标缓存资源反馈至对应的客户端。
8.根据权利要求7所述的装置,其特征在于,所述多级缓存还包括数据库缓存;所述目标缓存资源获取模块,还用于:
当在所述二级缓存中未命中与所述资源识别标识对应的目标缓存资源时,确定与所述资源识别标识对应的数据库;根据所述资源识别标识,在所确定的所述数据库中提取对应的目标缓存资源,将所命中的目标缓存资源缓存至所述二级缓存;将所命中的目标缓存资源反馈至对应的客户端。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至5中任一项所述的方法的步骤。
10.一种计算机存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至5中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010879398.6A CN112015674B (zh) | 2020-08-27 | 2020-08-27 | 基于多层级的缓存资源访问方法、装置和计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010879398.6A CN112015674B (zh) | 2020-08-27 | 2020-08-27 | 基于多层级的缓存资源访问方法、装置和计算机设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112015674A CN112015674A (zh) | 2020-12-01 |
CN112015674B true CN112015674B (zh) | 2023-05-30 |
Family
ID=73502321
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010879398.6A Active CN112015674B (zh) | 2020-08-27 | 2020-08-27 | 基于多层级的缓存资源访问方法、装置和计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112015674B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113010514B (zh) * | 2021-03-01 | 2024-02-20 | 中国工商银行股份有限公司 | 热加载方法及装置 |
CN112699154B (zh) * | 2021-03-25 | 2021-06-18 | 上海洋漪信息技术有限公司 | 应对大流量数据的多级缓存方法 |
CN113806402B (zh) * | 2021-09-14 | 2023-08-15 | 北京八分量信息科技有限公司 | 一种基于区块链的信息查询方法及装置 |
CN113742290B (zh) * | 2021-11-04 | 2022-03-15 | 上海闪马智能科技有限公司 | 一种数据存储方法、装置、存储介质及电子装置 |
CN114143376A (zh) * | 2021-11-18 | 2022-03-04 | 青岛聚看云科技有限公司 | 一种用于加载缓存的服务器、显示设备及资源播放方法 |
CN114356970B (zh) * | 2021-11-19 | 2023-11-07 | 苏州浪潮智能科技有限公司 | 一种存储系统资源缓存方法及装置 |
CN114553960A (zh) * | 2022-04-22 | 2022-05-27 | 四川万网鑫成信息科技有限公司 | 一种数据缓存方法、装置、设备及存储介质 |
CN114968845A (zh) * | 2022-05-29 | 2022-08-30 | 苏州浪潮智能科技有限公司 | 一种缓存处理的方法、系统、设备和存储介质 |
CN116909943B (zh) * | 2023-09-08 | 2023-12-19 | 飞腾信息技术有限公司 | 一种缓存访问方法、装置、存储介质及电子设备 |
CN117785949B (zh) * | 2024-02-28 | 2024-05-10 | 云南省地矿测绘院有限公司 | 一种数据缓存方法、电子设备、存储介质以及装置 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101216855A (zh) * | 2008-01-16 | 2008-07-09 | 中兴通讯股份有限公司 | 消息类业务累计数据缓存方法及系统 |
CN107624231A (zh) * | 2016-12-02 | 2018-01-23 | 深圳前海达闼云端智能科技有限公司 | 数据发送、接收的方法、装置、服务器及计算机程序产品 |
CN109241084A (zh) * | 2018-09-17 | 2019-01-18 | 平安科技(深圳)有限公司 | 数据的查询方法、终端设备及介质 |
CN109471875A (zh) * | 2018-09-25 | 2019-03-15 | 网宿科技股份有限公司 | 基于缓存数据的热度管理方法、服务器及存储介质 |
CN110188080A (zh) * | 2019-05-17 | 2019-08-30 | 北京航空航天大学 | 基于客户端高效缓存的远程文件数据访问性能优化方法 |
CN111026761A (zh) * | 2019-12-11 | 2020-04-17 | 上海鲸骞金融信息服务有限公司 | 一种金融数据的存储系统、处理方法和装置 |
CN111432039A (zh) * | 2020-06-15 | 2020-07-17 | 北京金山云网络技术有限公司 | Cdn中数据请求方法、装置、设备和cdn节点 |
CN111563216A (zh) * | 2020-07-16 | 2020-08-21 | 平安国际智慧城市科技股份有限公司 | 本地数据缓存方法、装置及相关设备 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050172076A1 (en) * | 2004-01-30 | 2005-08-04 | Gateway Inc. | System for managing distributed cache resources on a computing grid |
US8966178B2 (en) * | 2012-01-17 | 2015-02-24 | International Business Machines Corporation | Populating a first stride of tracks from a first cache to write to a second stride in a second cache |
US9946646B2 (en) * | 2016-09-06 | 2018-04-17 | Advanced Micro Devices, Inc. | Systems and method for delayed cache utilization |
-
2020
- 2020-08-27 CN CN202010879398.6A patent/CN112015674B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101216855A (zh) * | 2008-01-16 | 2008-07-09 | 中兴通讯股份有限公司 | 消息类业务累计数据缓存方法及系统 |
CN107624231A (zh) * | 2016-12-02 | 2018-01-23 | 深圳前海达闼云端智能科技有限公司 | 数据发送、接收的方法、装置、服务器及计算机程序产品 |
CN109241084A (zh) * | 2018-09-17 | 2019-01-18 | 平安科技(深圳)有限公司 | 数据的查询方法、终端设备及介质 |
CN109471875A (zh) * | 2018-09-25 | 2019-03-15 | 网宿科技股份有限公司 | 基于缓存数据的热度管理方法、服务器及存储介质 |
CN110188080A (zh) * | 2019-05-17 | 2019-08-30 | 北京航空航天大学 | 基于客户端高效缓存的远程文件数据访问性能优化方法 |
CN111026761A (zh) * | 2019-12-11 | 2020-04-17 | 上海鲸骞金融信息服务有限公司 | 一种金融数据的存储系统、处理方法和装置 |
CN111432039A (zh) * | 2020-06-15 | 2020-07-17 | 北京金山云网络技术有限公司 | Cdn中数据请求方法、装置、设备和cdn节点 |
CN111563216A (zh) * | 2020-07-16 | 2020-08-21 | 平安国际智慧城市科技股份有限公司 | 本地数据缓存方法、装置及相关设备 |
Non-Patent Citations (1)
Title |
---|
WebGIS中带图业务数据的缓存和预取机制研究;李源;何友全;;计算机测量与控制(第05期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN112015674A (zh) | 2020-12-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112015674B (zh) | 基于多层级的缓存资源访问方法、装置和计算机设备 | |
US9560165B2 (en) | BT offline data download system and method, and computer storage medium | |
CN108683668B (zh) | 内容分发网络中的资源校验方法、装置、存储介质及设备 | |
CN104679778A (zh) | 一种搜索结果的生成方法及装置 | |
WO2019127890A1 (zh) | 漏洞扫描方法、装置、计算机设备和存储介质 | |
CN112153170B (zh) | 访问服务器的方法、装置、设备及存储介质 | |
CN104794228A (zh) | 一种搜索结果提供方法及装置 | |
CN110442762B (zh) | 基于云平台大数据的大数据处理方法 | |
US20230359628A1 (en) | Blockchain-based data processing method and apparatus, device, and storage medium | |
CN112579595A (zh) | 数据处理方法、装置、电子设备及可读存储介质 | |
CN105577701A (zh) | 网络爬虫的识别方法及系统 | |
CN110910249B (zh) | 一种数据处理方法、装置、节点设备及存储介质 | |
CN112015553A (zh) | 基于机器学习模型的数据处理方法、装置、设备和介质 | |
US20170017574A1 (en) | Efficient cache warm up based on user requests | |
JP2019519849A (ja) | サーバへの攻撃を防ぐ方法及びデバイス | |
CN111522873B (zh) | 区块生成方法、装置、计算机设备和存储介质 | |
CN111694806A (zh) | 一种事务日志的缓存方法、装置、设备和存储介质 | |
JP6233846B2 (ja) | 可変長ノンスの生成 | |
CN111191082B (zh) | 数据管理方法、装置、计算机设备和存储介质 | |
CN110968267B (zh) | 数据管理方法、装置、服务器及系统 | |
CN115840939A (zh) | 安全漏洞处理方法、装置、计算机设备和存储介质 | |
CN114238264A (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
CN112800123A (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
CN111639277A (zh) | 机器学习样本集的自动化提取方法和计算机可读存储介质 | |
CN105282236B (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 |