CN117539915B - 一种数据处理方法及相关装置 - Google Patents
一种数据处理方法及相关装置 Download PDFInfo
- Publication number
- CN117539915B CN117539915B CN202410031006.9A CN202410031006A CN117539915B CN 117539915 B CN117539915 B CN 117539915B CN 202410031006 A CN202410031006 A CN 202410031006A CN 117539915 B CN117539915 B CN 117539915B
- Authority
- CN
- China
- Prior art keywords
- data
- cache space
- level cache
- target data
- 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
- 238000003672 processing method Methods 0.000 title claims abstract description 35
- 238000003860 storage Methods 0.000 claims abstract description 95
- 238000000034 method Methods 0.000 claims abstract description 44
- 230000015654 memory Effects 0.000 claims description 67
- 238000012545 processing Methods 0.000 claims description 26
- 230000008030 elimination Effects 0.000 claims description 14
- 238000003379 elimination reaction Methods 0.000 claims description 14
- 238000004590 computer program Methods 0.000 claims description 7
- 238000013500 data storage Methods 0.000 abstract description 4
- 230000007246 mechanism Effects 0.000 description 18
- 238000010586 diagram Methods 0.000 description 12
- 230000004044 response Effects 0.000 description 12
- 230000008569 process Effects 0.000 description 7
- 238000004891 communication Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 239000002699 waste material Substances 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 230000002688 persistence Effects 0.000 description 3
- 230000002085 persistent effect Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000007619 statistical method Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 238000004140 cleaning Methods 0.000 description 1
- 238000013144 data compression Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- 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
-
- 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/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0871—Allocation or management of cache space
-
- 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/0893—Caches characterised by their organisation or structure
- G06F12/0897—Caches characterised by their organisation or structure with two or more cache hierarchy levels
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1041—Resource optimization
- G06F2212/1044—Space efficiency improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/16—General purpose computing application
- G06F2212/163—Server or database system
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本申请提供了一种数据处理方法以及相关装置。本申请实施例可应用于数据存储领域。其方法包括:接收携带第一目标数据标识信息的第一目标数据查询请求;根据第一目标数据标识信息,按照优先级依次查询三个缓存空间,直到查询到第一目标数据,并将第一目标数据返回,一级缓存空间、二级缓存空间及三级缓存空间为预先配置的优先级不同的三个缓存空间;更新第一目标数据的统计访问数据,根据更新后的统计访问数据调整第一目标数据的缓存空间。本申请实施例提供的方法,将大量的需要在一级缓存空间中缓存的数据转移到存储成本更低的二级缓存空间中,降低一级缓存的缓存消耗,以及降低三级缓存的带宽消耗,进而降低存储成本。
Description
技术领域
本申请涉及数据缓存技术领域,尤其涉及一种数据处理方法及相关装置。
背景技术
随着互联网的快速发展及互联网使用人数的增加,用户的访问量级及数据量非常大,尤其是热点数据的查询访问。为了提高热点数据的访问效率和响应速度,可以采用内存+Redis缓存的二级缓存方式来实现。
但是,内存+Redis缓存的二级缓存方式存在以下两个问题:
1)高成本:机器内存资源成本高,Redis 存储成本也高。使用内存+Redis 的二级缓存技术需要大量的内存资源来存储缓存数据,这可能会增加服务器的成本。同时,Redis作为分布式缓存系统,也需要一定的存储成本。
2)带宽资源消耗高:针对大量的K-V数据(Key-Value数据)存储场景,因为机器内存容量有限,会有大量请求穿透到 Redis,Redis读写量越大所需带宽越大,成本越高。
发明内容
本申请实施例提供了一种数据处理方法以及相关装置,通过三级缓存的方式,将大量的需要在一级缓存空间中缓存的数据转移到存储成本更低的二级缓存空间中,降低一级缓存的缓存消耗,以及降低三级缓存的带宽消耗,进而降低存储成本。
本申请的一方面提供一种数据处理方法,包括:
接收第一目标对象发送的第一目标数据查询请求,其中,第一目标数据查询请求携带第一目标数据标识信息;
根据第一目标数据标识信息,按照优先级依次查询一级缓存空间、二级缓存空间及三级缓存空间,直到查询到第一目标数据标识对应的第一目标数据,并将第一目标数据返回至第一目标对象,其中,一级缓存空间、二级缓存空间及三级缓存空间为预先配置的优先级不同的三个缓存空间,三个缓存空间对应于三个不同的统计访问数据阈值;
根据第一目标数据查询请求,对第一目标数据的统计访问数据进行更新,其中,统计访问数据用于表征第一目标数据在目标统计周期内的访问量数据;
根据更新后的统计访问数据及三个不同的统计访问数据阈值,调整第一目标数据的缓存空间。
本申请的另一方面提供了一种数据处理装置,包括:数据查询请求接收模块、目标数据查找模块、统计访问数据更新模块及缓存空间调整模块;具体的:
数据查询请求接收模块,用于接收第一目标对象发送的第一目标数据查询请求,其中,第一目标数据查询请求携带第一目标数据标识信息;
目标数据查找模块,用于根据第一目标数据标识信息,按照优先级依次查询一级缓存空间、二级缓存空间及三级缓存空间,直到查询到第一目标数据标识对应的第一目标数据,并将第一目标数据返回至第一目标对象,其中,一级缓存空间、二级缓存空间及三级缓存空间为预先配置的优先级不同的三个缓存空间,三个缓存空间对应于三个不同的统计访问数据阈值;
统计访问数据更新模块,用于根据第一目标数据查询请求,对第一目标数据的统计访问数据进行更新,其中,统计访问数据用于表征第一目标数据在目标统计周期内的访问量数据;
缓存空间调整模块,用于根据更新后的统计访问数据及三个不同的统计访问数据阈值,调整第一目标数据的缓存空间。
在本申请实施例的另一种实现方式中,目标数据查找模块,还用于:
根据第一目标数据标识信息,在一级缓存空间进行查询;
若在一级缓存空间中查询到与第一目标数据标识信息对应的第一目标数据,则将第一目标数据返回至第一目标对象;
若在一级缓存空间中未查询到与第一目标数据标识信息对应的第一目标数据,则根据第一目标数据标识信息,在二级缓存空间进行查询;
若在二级缓存空间中查询到与第一目标数据标识信息对应的第一目标数据,则将第一目标数据返回至第一目标对象;
若在二级缓存空间中未查询到与第一目标数据标识信息对应的第一目标数据,则根据第一目标数据标识信息,在三级缓存空间进行查询;
若在三级缓存空间中查询到与第一目标数据标识信息对应的第一目标数据,则将第一目标数据返回至第一目标对象;
若在三级缓存空间中未查询到与第一目标数据标识信息对应的第一目标数据,则返回查询等待指令至第一目标对象。
在本申请实施例的另一种实现方式中,目标数据查找模块,还用于:
若在数据库中查询到与第一目标数据标识信息对应的第一目标数据,则将第一目标数据缓存至三级缓存空间中,以及将第一目标数据返回至第一目标对象。
在本申请实施例的另一种实现方式中,数据处理装置还包括:三层缓存空间配置模块,三层缓存空间配置模块用于:
获取M个历史数据对应的M个统计访问数据,其中,M>3;
根据M个统计访问数据,确定第一统计访问数据阈值、第二统计访问数据阈值及第三统计访问数据阈值,其中,第一统计访问数据阈值、第二统计访问数据阈值及第三统计访问数据阈值为M个统计访问数据中的三个统计访问数据,第一统计访问数据阈值>第二统计访问数据阈值>第三统计访问数据阈值;
根据第一统计访问数据阈值、第二统计访问数据阈值及第三统计访问数据阈值,对一级缓存空间、二级缓存空间及三级缓存空间进行配置,其中,第一统计访问数据阈值对应于一级缓存空间,第二统计访问数据阈值对应于二级缓存空间,第三统计访问数据阈值对应于三级缓存空间。
在本申请实施例的另一种实现方式中,三层缓存空间配置模块还用于:
根据M个统计访问数据对所述M个历史数据进行降序排列;
依次将所述M个历史数据存储至所述一级缓存空间、所述二级缓存空间及所述三级缓存空间,其中,当所述一级缓存空间的存储量达到一级缓存空间的存储阈值时,将未存储在一级缓存空间中的历史数据依次存储至二级缓存空间及所述三级缓存空间;当所述二级缓存空间的存储量达到二级缓存空间的存储阈值时,将未存储在一级缓存空间和二级缓存空间中的历史数据依次存储至所述三级缓存空间;
将最后一个存储在一级缓存空间的历史数据对应的统计访问数据确定为所述第一统计访问数据阈值,将最后一个存储在二级缓存空间的历史数据对应的统计访问数据确定为所述第二统计访问数据阈值,将最后一个存储在三级缓存空间的历史数据对应的统计访问数据确定为所述第三统计访问数据阈值。在本申请实施例的另一种实现方式中,缓存空间调整模块,还用于:
若更新后的统计访问数据大于或等于第一统计访问数据阈值,则将第一目标数据缓存至一级缓存空间;
若更新后的统计访问数据小于第一统计访问数据阈值且大于或等于第二统计访问数据阈值,则将第一目标数据缓存至二级缓存空间;
若更新后的统计访问数据小于第二统计访问数据阈值且大于或等于第三统计访问数据阈值,则将第一目标数据缓存至三级缓存空间。
在本申请实施例的另一种实现方式中,数据处理装置,还包括:缓存淘汰模块;缓存淘汰模块,用于:
获取缓存至一级缓存空间中的第一数据;
统计在第一统计周期内第一数据的访问量数据;
若第一数据在第一统计周期的访问量数据大于或等于第一统计访问数据阈值,则将第一数据缓存至一级缓存空间;
若第一数据在第一统计周期的访问量数据小于第一统计访问数据阈值且大于或等于第二统计访问数据阈值,则将第一数据缓存至二级缓存空间;
若第一数据在第一统计周期的访问量数据小于第二统计访问数据阈值且大于或等于第三统计访问数据阈值,则将第一数据缓存至三级缓存空间。
在本申请实施例的另一种实现方式中,
数据查询请求接收模块,还用于接收K个第二目标对象发送的K个第二目标数据查询请求,其中,K个第二目标数据查询请求对应于K个数据查询请求时间,K个数据查询请求时间中的两两数据查询请求时间的时间差值小于时间差阈值,K个第二目标数据查询请求均携带第二目标数据标识信息,K>1;
目标数据查找模块,还用于根据K个第二目标数据查询请求中的任一第二目标数据查询请求携带的第二目标数据标识信息,按照优先级依次查询一级缓存空间、二级缓存空间及三级缓存空间,直到查询到第二目标数据标识对应的第二目标数据,并将第二目标数据返回至K个第二目标对象。
在本申请实施例的另一种实现方式中,一级缓存空间与二级缓存空间均为单机存储介质,三级缓存空间为分布式存储介质;对存储在一级缓存空间中的缓存数据进行读取的读取速度大于对存储在二级缓存空间中的缓存数据进行读取的读取速度,对存储在三级缓存空间中的缓存数据进行读取的读取速度大于对存储在二级缓存空间中的缓存数据进行读取的读取速度。
本申请的另一方面提供了一种计算机设备,包括:
存储器、收发器、处理器以及总线系统;
其中,存储器用于存储程序;
处理器用于执行存储器中的程序,包括执行上述各方面的方法;
总线系统用于连接存储器以及处理器,以使存储器以及处理器进行通信。
本申请的另一方面提供了一种计算机可读存储介质,计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述各方面的方法。
本申请的另一方面提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各方面所提供的方法。
从以上技术方案可以看出,本申请实施例具有以下优点:
本申请提供了一种数据处理方法以及相关装置,其方法包括:接收第一目标对象发送的第一目标数据查询请求,其中,第一目标数据查询请求携带第一目标数据标识信息;根据第一目标数据标识信息,按照优先级依次查询一级缓存空间、二级缓存空间及三级缓存空间,直到查询到第一目标数据标识对应的第一目标数据,并将第一目标数据返回至第一目标对象,其中,一级缓存空间、二级缓存空间及三级缓存空间为预先配置的优先级不同的三个缓存空间,三个缓存空间对应于三个不同的统计访问数据阈值;根据第一目标数据查询请求,对第一目标数据的统计访问数据进行更新,其中,统计访问数据用于表征第一目标数据在目标统计周期内的访问量数据;根据更新后的统计访问数据及三个不同的统计访问数据阈值,调整第一目标数据的缓存空间。本申请实施例提供的方法,通过在三级缓存的方式,将大量的需要在一级缓存空间中缓存的数据转移到存储成本更低的二级缓存空间中,降低一级缓存的缓存消耗,以及降低三级缓存的带宽消耗,进而降低存储成本。
附图说明
图1为相关技术中的内存+Redis缓存的二级缓存的架构图;
图2为相关技术中的内存+Redis二级缓存的流程图;
图3为本申请某一实施例提供的数据处理系统的一个架构示意图;
图4为本申请某一实施例提供的数据处理方法的流程图;
图5为本申请某一实施例提供的三层缓存的结构示意图;
图6为本申请某一实施例提供的数据处理方法流程的时序图;
图7为本申请另一实施例提供的数据处理方法的流程图;
图8为本申请另一实施例提供的数据处理方法的流程图;
图9为本申请另一实施例提供的数据处理方法的流程图;
图10为本申请另一实施例提供的数据处理方法的流程图;
图11为本申请另一实施例提供的数据处理方法的流程图;
图12为本申请又一实施例提供的数据处理方法的流程图;
图13为本申请某一实施例提供的多并发场景下的数据处理方法的架构图;
图14为本申请某一实施例提供的数据处理装置的结构示意图;
图15为本申请另一实施例提供的数据处理装置的结构示意图;
图16为本申请某一实施例提供的服务器结构示意图。
实施方式
本申请实施例提供了一种数据处理方法,通过三级缓存方式,将大量的需要在一级缓存空间中缓存的数据转移到存储成本更低的二级缓存空间中,降低一级缓存的缓存消耗,以及降低三级缓存的带宽消耗,进而降低存储成本。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“对应于”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
本申请实施例中,术语“模块”或“单元”是指有预定功能的计算机程序或计算机程序的一部分,并与其他相关部分一起工作以实现预定目标,并且可以通过使用软件、硬件(如处理电路或存储器)或其组合来全部或部分实现。同样的,一个处理器(或多个处理器或存储器)可以用来实现一个或多个模块或单元。此外,每个模块或单元都可以是包含该模块或单元功能的整体模块或单元的一部分。
为便于理解本申请实施例提供的技术方案,这里先对本申请实施例使用的一些关键名词进行解释:
内存(Random Access Memory,RAM)是计算机中的一种临时存储设备,用于存储正在运行的程序和数据。内存的特点是读写速度非常快,可以在几毫秒内完成数据的读写操作。但是,内存的容量通常比较小,一般在几 GB 到几十 GB 之间,而且当计算机断电时,内存中的数据会被清除。
硬盘存储(Hard Disk Drive,HDD)是计算机中的永久存储设备,用于存储操作系统、应用程序、用户数据等长期保存的数据。硬盘存储的特点是容量大,一般在几百 GB 到几 TB 之间,而且可以长期保存数据,即使计算机断电,数据也不会丢失。但是,硬盘存储的读写速度相对较慢,一般在几十毫秒到几百毫秒之间。
Redis存储是一种基于内存的数据存储技术,它提供了一种高速、可靠的键值存储服务。Redis存储的数据是临时的,但是可以通过配置持久化选项将数据保存到硬盘上,以便在服务器重启或故障时恢复数据。Redis存储的特点是读写速度非常快,支持丰富的数据结构和操作,常用于缓存、会话管理、消息队列等应用场景。支持字符串、哈希表、列表、集合、有序集合,位图,hyperloglogs等数据类型。内置复制、Lua脚本、LRU收回、事务以及不同级别硬盘持久化功能。
K-V 数据通常指的是 Key-Value 数据,其中“Key”表示数据的唯一标识符,“Value”表示与该标识符相关联的数据值。在 K-V 数据存储中,每个数据项都由一个键和一个值组成。键通常是唯一的,用于唯一地标识数据项,而值则可以是任何类型的数据,例如字符串、数字、对象等。
Localcache缓存库,它通常用于在应用程序中缓存本地数据,以提高应用程序的性能,通常用于对K-V数据进行缓存,允许多个goroutine并发访问。通过使用 LocalCache,应用程序可以快速访问频繁使用的数据,而无需每次都从数据库或其他数据源中获取数据,从而提高应用程序的性能。LocalCache 通常支持多种缓存策略,例如 LRU(最近最少使用)、LFU(最不经常使用)等,以确定哪些数据应该被缓存以及何时应该从缓存中删除数据。LocalCache 还通常支持数据过期和更新机制,以确保缓存中的数据始终是最新的。
Bitcask缓存库,是一种基于文件的缓存库,它通常用于在应用程序中缓存大量数据,以提高应用程序的性能。Bitcask 将数据存储在磁盘上的文件中,而不是存储在内存中。它使用一种基于哈希表的数据结构来快速查找和访问缓存中的数据。Bitcask 支持数据过期和更新机制,以确保缓存中的数据始终是最新的。Bitcask 通常被设计为可扩展的,它可以通过增加磁盘空间来存储更多的数据。它还支持数据压缩,以减少磁盘空间的使用。它的主要目的是确保对同一资源的并发请求被处理为单个请求,以避免不必要的重复工作和潜在的冲突,SingleFlight 的基本思想是使用一个全局锁或分布式锁来协调对资源的访问。当第一个请求到达时,它会获取锁并开始处理请求。其他并发请求将被阻塞,直到第一个请求完成并释放锁,即在多个相同请求并发访问同一资源时,通过waitGroup来阻塞请求,只允许一个请求向下游穿透,执行结果通过map机制共享数据。
随着互联网的快速发展及互联网使用人数的增加,用户的访问量级及数据量非常大,尤其是热点数据的查询访问。为了提高热点数据的访问效率和响应速度,在相关技术中常常采用内存+Redis缓存的二级缓存方式来实现。
请参阅图1,在内存+Redis缓存的二级缓存的架构中,内存缓存作为一级缓存,通常用于缓存经常使用的数据,以提供快速的访问速度。内存缓存通常使用应用程序的内存来存储缓存数据,因此具有较高的访问速度,但缓存大小受到内存容量的限制。Redis 缓存作为二级缓存,用于缓存内存缓存中未命中的数据或需要持久化的数据。Redis 是一种高性能的内存数据库,具有快速的读写速度和丰富的数据结构。通过将 Redis 作为二级缓存,可以扩展缓存的容量,并提供持久化的数据存储。
请参阅图2,内存+Redis二级缓存过程的工作原理如下:首先,接收客户端对于数据的访问请求;其次,根据该访问请求首先尝试从一级缓存(内存缓存)中获取所需的数据;如果内存缓存中存在该数据,则直接返回给客户端;如果内存缓存中未命中该数据,则从二级缓存(Redis缓存)中获取该数据。如果Redis缓存中存在该数据,则直接返回给客户端,并将该数据写入内存缓存;如果Redis缓存中未命中该数据,则从后端数据源(如数据库)中获取数据,触发数据回源逻辑,将该数据依次写入Redis缓存及内存缓存,并将该数据返回给客户端。
但是,内存+Redis缓存的二级缓存方式存在以下两个问题:
1)高成本:机器内存资源成本高,Redis 存储成本也高。使用内存+Redis 的二级缓存技术需要大量的内存资源来存储缓存数据,这可能会增加服务器的成本。同时,Redis作为分布式缓存系统,也需要一定的存储成本。
2)带宽资源消耗高:针对大 K-V数据(Key-Value数据)存储场景,因为机器内存容量有限,会有大量请求穿透到 Redis,Redis读写量越大所需带宽越大,成本越高。当大量用户同时访问热点数据时,缓存的更新和同步可能会导致网络带宽的瓶颈,从而影响系统的性能。
本申请提供了一种数据处理方法以及相关装置,其方法包括:配置不同优先级的三个缓存空间,其中,三个缓存空间分别为一级缓存空间、二级缓存空间及三级缓存空间,三个缓存空间对应于三个不同的统计访问数据阈值;接收第一目标对象发送的第一目标数据查询请求,其中,第一目标数据查询请求携带第一目标数据标识信息;根据第一目标数据标识信息,按照优先级依次查询一级缓存空间、二级缓存空间及三级缓存空间,直到查询到第一目标数据标识对应的第一目标数据,并将第一目标数据返回至第一目标对象;根据第一目标数据查询请求,对第一目标数据的统计访问数据进行更新,其中,统计访问数据用于表征第一目标数据在目标统计周期内的访问量数据;根据更新后的统计访问数据及三个不同的统计访问数据阈值,调整第一目标数据的缓存空间。本申请实施例提供的方法,通过在一级缓存(内存)与相关技术中的原二级缓存(Redis)之间增加一层缓存,将大量的需要在一级缓存空间中缓存的数据转移到存储成本更低的新增的缓存空间中,降低一级缓存的缓存消耗,以及降低原来的二级缓存的带宽消耗,进而降低存储成本。
为了便于理解,请参阅图3,图3为本申请实施例中数据处理方法的应用环境图,如图3所示,本申请实施例中数据处理方法应用于数据处理系统。数据处理系统包括:服务器和终端设备;其中,服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(Content Delivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。终端可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。终端和服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请实施例在此不做限制。
服务器首先接收第一目标对象发送的第一目标数据查询请求,其中,第一目标数据查询请求携带第一目标数据标识信息;接着,服务器根据第一目标数据标识信息,按照优先级依次查询一级缓存空间、二级缓存空间及三级缓存空间,直到查询到第一目标数据标识对应的第一目标数据,并将第一目标数据返回至第一目标对象,其中,一级缓存空间、二级缓存空间及三级缓存空间为预先配置的优先级不同的三个缓存空间,三个缓存空间对应于三个不同的统计访问数据阈值;然后,服务器根据第一目标数据查询请求,对第一目标数据的统计访问数据进行更新,其中,统计访问数据用于表征第一目标数据在目标统计周期内的访问量数据;最后,服务器根据更新后的统计访问数据及三个不同的统计访问数据阈值,调整第一目标数据的缓存空间。
下面将从服务器的角度,对本申请中数据处理方法进行介绍。请参阅图4,本申请实施例提供的数据处理方法包括:步骤S110至步骤S140。具体的:
S110、接收第一目标对象发送的第一目标数据查询请求。
其中,第一目标数据查询请求携带第一目标数据标识信息。
可以理解的是,第一目标数据是以K-V结构(Key-Value数据)在缓存空间中进行存储的,其中Key即为第一目标数据标识信息。在第一目标数据查询请求中携带第一目标数据标识信息,后续可以根据该第一目标数据标识信息依次在三个缓存空间中查找该第一目标数据标识信息对应的第一目标数据(Value)。
S120、根据第一目标数据标识信息,按照优先级依次查询一级缓存空间、二级缓存空间及三级缓存空间,直到查询到第一目标数据标识对应的第一目标数据,并将第一目标数据返回至第一目标对象。
其中,一级缓存空间、二级缓存空间及三级缓存空间为预先配置的优先级不同的三个缓存空间,三个缓存空间对应于三个不同的统计访问数据阈值。
可以理解的是,请参阅图5,图5为本申请实施例提供的三层缓存的结构示意图。
三个缓存空间的优先级次序为:一级缓存空间的优先级>二级缓存空间的优先级>三级缓存空间的优先级。该优先级用于表征对第一目标数据进行查询的次序,即在对第一目标数据进行查找时,首先在一级缓存空间中进行查找,当未在一级缓存空间中查询到第一目标数据时,接着在二级缓存空间中进行查找,当未在二级缓存空间中查询到第一目标数据时,接着在三级缓存空间中进行查找。
三个缓存空间中缓存的数据的访问频次或频率的次序为:一级缓存空间的数据的访问频次或频率>二级缓存空间的数据的访问频次或频率>三级缓存空间的数据的访问频次或频率。
三个缓存空间的容量值的大小排序为:一级缓存空间的容量值<二级缓存空间的容量值<三级缓存空间的容量值。
在三个缓存空间中的数据均以K-V形式的数据结构的形式在缓存空间中进行缓存,其中,K表示数据的唯一标识符(键),V表示该标识符相关联的数据值。
一级缓存空间与二级缓存空间均为单机存储介质,三级缓存空间为分布式存储介质。一级缓存空间的存储成本高于二级缓存空间的存储成本。一级缓存空间的性能高于二级缓存空间的性能,三级缓存空间的性能高于二级缓存空间的性能,即对存储在一级缓存空间中的缓存数据进行读取的读取速度大于对存储在二级缓存空间中的缓存数据进行读取的读取速度,对存储在三级缓存空间中的缓存数据进行读取的读取速度大于对存储在二级缓存空间中的缓存数据进行读取的读取速度。
进一步地,一级缓存空间为高性能的单机存储介质。优选的,一级缓存空间可以是内存。在内存缓存中,数据被存储在一个哈希表或其他类似的数据结构中,以便快速地进行查找和访问。当需要存储或检索数据时,通过键来查找相应的值。如果键存在一级缓存空间,则返回对应的数据值;如果键不存在,则在二级缓存空间中进行查找。例如,对于内存缓存,可以在golang中使用localcache缓存库实现。
二级缓存空间为普通性能的单机存储介质。优选的,二级缓存空间可以是硬盘或磁盘等文件缓存的存储介质,磁盘或硬盘等文件缓存通常使用一定大小的高速缓存来存储相对频繁访问的数据(存储在文件缓存中的数据的访问频次或频率低于存储在内存中的数据的访问频次或频率),以提高数据的访问速度。当键不存在于内存中,则在文件缓存中进行查找。当键存在于文件缓存中,则直接返回文件缓存中的数据;当键不存在于文件缓存中,则在三级缓存空间中进行查找。例如,对于文件缓存,可以使用bitcask缓存库实现。
三级缓存空间为高性能的分布式存储介质。优选的,三级缓存空间可以是redis缓存系统,当键不存在于文件缓存中,则在redis缓存系统中进行查找。当键存在于redis缓存系统中,则直接返回redis缓存系统中的数据;当键不存在于redis缓存系统中,则在外部数据库中进行查找。
可以依据历史的统计访问数据以及三个缓存空间对应的三个存储容量确定三个不同的统计访问数据阈值。举例说明,首先,确定三个缓存空间对应的三个存储容量:一级缓存空间的存储容量为1G,二级缓存空间的存储容量为4G,三级缓存空间的存储容量为8G;接着,对某一历史时期的数据查询请求进行统计,例如对过去一天的数据查询请求进行统计,并根据统计过去一天的数据查询请求中每个查询请求对应的历史数据的查询次数,作为该历史数据的统计访问数据,根据过去一天的所有历史数据的统计访问数据进行降序排列,并以及降序排列结果将所有的历史数据存储至三个缓存空间中,当缓存空间存储达到容量阈值时所对应的历史数据的统计访问数据为该缓存空间对应的统计访问数据阈值,例如,在某一天有十万个数据查询请求,该十万个数据查询请求对应于一千个历史数据,按照该一千个历史数据对应的统计访问数据对该一千个历史数据进行降序排列,并根据降序排序结果将该一千个历史数据存储至三个缓存空间,并按照三个缓存空间的优先级进行存储,即先按照排序结果从高至低先存储至一级缓存空间,当一级缓存空间的存储达到容量阈值时,再进行第二缓存空间的存储,当第二缓存空间的存储达到容量阈值时,再进行第三缓存空间的存储。
三个缓存空间的统计访问数据阈值的大小排序为:一级缓存空间的统计访问数据阈值>二级缓存空间的数据的统计访问数据阈值>三级缓存空间的数据的统计访问数据阈值。
当得到了每个缓存空间对应的统计访问数据阈值后,可以根据每个目标数据对应的统计访问数据,将目标数据存储到对应的缓存空间中。例如,一级缓存空间的统计访问数据阈值为1000,二级缓存空间的统计访问数据阈值为500,三级缓存空间的统计访问数据阈值为100。若目标数据a对应的统计访问数据为1200时,由于目标数据a对应的统计访问数据>一级缓存空间的统计访问数据阈值,则将目标数据a缓存至一级缓存空间。若目标数据b对应的统计访问数据为800时,由于一级缓存空间的统计访问数据阈值>目标数据b对应的统计访问数据>二级缓存空间的统计访问数据阈值,则将目标数据b缓存至二级缓存空间。若目标数据c对应的统计访问数据为300时,由于二级缓存空间的统计访问数据阈值>目标数据c对应的统计访问数据>三级缓存空间的统计访问数据阈值,则将目标数据c缓存至三级缓存空间。请参阅图6,根据第一目标数据标识信息,首先在一级缓存空间对第一目标数据标识信息进行查找;若在一级缓存空间中查询到第一目标数据标识信息,则将第一目标数据标识信息对应的第一目标数据返回至第一目标对象;若在一级缓存空间中未查询到第一目标数据标识信息,则在二级缓存空间对第一目标数据标识信息进行查找;若在二级缓存空间中查询到第一目标数据标识信息,则将第一目标数据标识信息对应的第一目标数据返回至第一目标对象;若在二级缓存空间中未查询到第一目标数据标识信息,则在三级缓存空间对第一目标数据标识信息进行查找;若在三级缓存空间中查询到第一目标数据标识信息,则将第一目标数据标识信息对应的第一目标数据返回至第一目标对象;若在三级缓存空间中未查询到第一目标数据标识信息,则在外部数据库中对第一目标数据标识信息进行查找。当在外部数据库查找到第一目标数据标识信息对应第一目标数据后,将第一目标数据更新到三级缓存空间、二级缓存空间或者一级缓存空间中,以及将该第一目标数据返回至用户。
S130、根据第一目标数据查询请求,对第一目标数据的统计访问数据进行更新。
其中,统计访问数据用于表征第一目标数据在目标统计周期内的访问量数据。
可以理解的是,当完成一次对于第一目标数据的查询后,需要对该第一目标数据的统计访问值进行更新。进一步的,统计访问数据为第一目标数据在目标统计周期内的访问频次,当完成一次对于第一目标数据的查询后,需要对第一目标数据的访问频次进行更新。
S140、根据更新后的统计访问数据及三个不同的统计访问数据阈值,调整第一目标数据的缓存空间。
可以理解的是,根据更新后的统计访问数据及三个不同的统计访问数据阈值,调整第一目标数据的缓存空间,假设第一目标数据的缓存空间调整之前,第一目标数据缓存在三级缓存空间中,若更新后第一目标数据的统计访问数据大于二级缓存空间对应的统计访问数据阈值,则将第一目标数据缓存至二级缓存空间中;假设第一目标数据的缓存空间调整之前,第一目标数据缓存在二级缓存空间中,若更新后第一目标数据的统计访问数据大于一级缓存空间对应的统计访问数据阈值,则将第一目标数据缓存至一级缓存空间中;假设第一目标数据的缓存空间调整之前,第一目标数据缓存在一级缓存空间中,若更新后第一目标数据的统计访问数据大于一级缓存空间对应的统计访问数据阈值,则将第一目标数据仍然缓存至一级缓存空间中。
本申请实施例提供的方法,通过三级缓存方式,将大量的需要在一级缓存空间中缓存的数据转移到存储成本更低的二级缓存空间中,降低一级缓存的缓存消耗,以及降低三级缓存的带宽消耗,进而降低存储成本。通过配置不同优先级的缓存空间,可以根据数据的访问频率和重要性对数据进行分层缓存,提高数据的查询效率。当接收到第一目标数据查询请求时,可以按照优先级依次查询一级缓存空间、二级缓存空间及三级缓存空间,直到查询到目标数据,从而减少了对后端存储系统的直接访问,提高了数据查询的响应速度。根据第一目标数据查询请求,对第一目标数据的统计访问数据进行更新,并根据更新后的统计访问数据及三个不同的统计访问数据阈值,调整第一目标数据的缓存空间,可以根据数据的实际访问情况动态地调整缓存空间的分配,使高频访问的数据能够更快地被缓存,提高缓存空间的利用率。通过分层缓存的设计,可以更好地支持系统的可扩展性。当系统需要处理更多的数据或更高的访问请求时,可以增加缓存空间的数量或调整缓存空间的大小,而无需对整个系统进行重新设计或重构。缓存空间可以提供数据的临时存储,减少对后端存储系统的直接访问,从而降低数据泄露或丢失的风险。同时,通过缓存空间的管理和控制,可以对缓存数据进行加密、备份等操作,进一步增强数据的安全性。
在本申请的图4对应的实施例提供的数据处理方法的一个可选实施例中,请参阅图7,步骤S120进一步包括子步骤S121至子步骤S127。具体的:
S121、根据第一目标数据标识信息,在一级缓存空间进行查询。
可以理解的是,第一目标数据以K-V结构(Key-Value数据)在三个缓存空间中进行存储。在对第一目标数据进行查询时,首先,根据第一目标数据标识信息在一级缓存空间中对第一目标数据标识信息进行查询。
S122、若在一级缓存空间中查询到与第一目标数据标识信息对应的第一目标数据,则将第一目标数据返回至第一目标对象。
可以理解的是,若第一目标数据在一级缓存空间中缓存,则在一级缓存空间中可以查询到第一目标数据标识信息,并且可以根据第一目标数据标识信息,查询到第一目标数据,待查询到第一目标数据后,将该第一目标数据返回至第一目标对象。
S123、若在一级缓存空间中未查询到与第一目标数据标识信息对应的第一目标数据,则根据第一目标数据标识信息,在二级缓存空间进行查询。
可以理解的是,若第一目标数据未在一级缓存空间中缓存,则在一级缓存空间中无法查询到第一目标数据标识信息,因此需要在二级缓存空间中查询是否缓存了第一目标数据。
S124、若在二级缓存空间中查询到与第一目标数据标识信息对应的第一目标数据,则将第一目标数据返回至第一目标对象。
可以理解的是,若第一目标数据在二级缓存空间中缓存,则在二级缓存空间中可以查询到第一目标数据标识信息,并且可以根据第一目标数据标识信息,查询到第一目标数据,待查询到第一目标数据后,将该第一目标数据返回至第一目标对象。
S125、若在二级缓存空间中未查询到与第一目标数据标识信息对应的第一目标数据,则根据第一目标数据标识信息,在三级缓存空间进行查询。
可以理解的是,若第一目标数据未在二级缓存空间中缓存,则在二级缓存空间中无法查询到第一目标数据标识信息,因此需要在三级缓存空间中查询是否缓存了第一目标数据。
S126、若在三级缓存空间中查询到与第一目标数据标识信息对应的第一目标数据,则将第一目标数据返回至第一目标对象。
可以理解的是,若第一目标数据在三级缓存空间中缓存,则在三级缓存空间中可以查询到第一目标数据标识信息,并且可以根据第一目标数据标识信息,查询到第一目标数据,待查询到第一目标数据后,将该第一目标数据返回至第一目标对象。
S127、若在三级缓存空间中未查询到与第一目标数据标识信息对应的第一目标数据,则返回查询等待指令至第一目标对象。
可以理解的是,若第一目标数据未在三级缓存空间中缓存,则在三级缓存空间中无法查询到第一目标数据标识信息,此时由于无法快速查询并返回第一目标数据,因此,需要返回查询等待指令至第一目标对象。
本申请实施例提供的方法,按照缓存空间的层级依次进行查询,并在找到匹配的数据时将其返回给第一目标对象。这种缓存机制可以提高数据查询的效率,减少对底层数据库的直接访问,从而提高系统的性能和响应速度。
在本申请的图7对应的实施例提供的数据处理方法的一个可选实施例中,请参阅图8,子步骤S127之后还包括子步骤S128。具体的:
S128、若在数据库中查询到与第一目标数据标识信息对应的第一目标数据,则将第一目标数据缓存至三级缓存空间中,以及将第一目标数据返回至第一目标对象。
可以理解的是,若在一级缓存空间、二级缓存空间以及三级缓存空间中均无法查询到第一目标数据标识信息,则表明该第一目标标识信息对应的第一目标数据未在一级缓存空间、二级缓存空间以及三级缓存空间缓存,此时,需要通过第一目标数据标识信息在数据库中进行查询。数据库可以存储大量巨,同时保持数据的一致性和完整性,但是由于由网络IO开销,性能较慢,无法做到即时查询,也可以将其称为四级缓存空间。若在第一目标数据存储在数据库中,则可以在数据库中查询到与第一目标数据标识信息对应的第一目标数据,并且将该第一目标数据缓存至三级缓存空间中。
本申请实施例提供的方法,在缓存中未找到目标数据时,通过查询数据库获取目标数据,并将其缓存至三级缓存空间,以便下次更快地获取该数据,这样可以提高数据查询的效率和响应速度,减少对数据库的直接访问,从而减轻数据库的负载,同时,将查询到的数据缓存至三级缓存空间中,也可以提高系统的缓存命中率,进一步提升系统的性能。
在本申请的图4对应的实施例提供的数据处理方法的一个可选实施例中,请参阅图9,所述方法还包括步骤S111至子步骤S113。具体的:
S111、获取M个历史数据对应的M个统计访问数据。
其中,M>3。
S112、根据M个统计访问数据,确定第一统计访问数据阈值、第二统计访问数据阈值及第三统计访问数据阈值。
其中,第一统计访问数据阈值、第二统计访问数据阈值及第三统计访问数据阈值为M个统计访问数据中的三个统计访问数据,第一统计访问数据阈值>第二统计访问数据阈值>第三统计访问数据阈值。
可以理解的是,第一统计访问数据阈值、第二统计访问数据阈值及第三统计访问数据阈值为M个统计访问数据中的任意三个统计访问数据,且满足第一统计访问数据阈值>第二统计访问数据阈值>第三统计访问数据阈值。
优选的,根据M个统计访问数据,确定第一统计访问数据阈值、第二统计访问数据阈值及第三统计访问数据阈值还可以通过以下方式实现:
首先,根据M个统计访问数据对M个历史数据进行降序排列。
然后,依次将M个历史数据存储至一级缓存空间、二级缓存空间及三级缓存空间。
其中,当一级缓存空间的存储量达到一级缓存空间的存储阈值时,将未存储在一级缓存空间中的历史数据依次存储至二级缓存空间及三级缓存空间;当二级缓存空间的存储量达到二级缓存空间的存储阈值时,将未存储在一级缓存空间和二级缓存空间中的历史数据依次存储至三级缓存空间。
最后,将最后一个存储在一级缓存空间的历史数据对应的统计访问数据确定为第一统计访问数据阈值,将最后一个存储在二级缓存空间的历史数据对应的统计访问数据确定为第二统计访问数据阈值,将最后一个存储在三级缓存空间的历史数据对应的统计访问数据确定为第三统计访问数据阈值。
可以理解的是,依据历史的统计访问数据以及三个缓存空间对应的三个存储容量确定三个不同的统计访问数据阈值。举例说明,首先,确定三个缓存空间对应的三个存储容量:一级缓存空间的存储容量为1G,二级缓存空间的存储容量为4G,三级缓存空间的存储容量为8G;接着,对某一历史时期的数据查询请求进行统计,例如对过去一天的数据查询请求进行统计,并根据统计过去一天的数据查询请求中每个查询请求对应的历史数据的查询次数,作为该历史数据的统计访问数据,根据过去一天的所有历史数据的统计访问数据进行降序排列,并以及降序排列结果将所有的历史数据存储至三个缓存空间中,当缓存空间存储达到容量阈值时所对应的历史数据的统计访问数据为该缓存空间对应的统计访问数据阈值,例如,在某一天有十万个数据查询请求,该十万个数据查询请求对应于一千个历史数据,按照该一千个历史数据对应的统计访问数据对该一千个历史数据进行降序排列,并根据降序排序结果将该一千个历史数据存储至三个缓存空间,并按照三个缓存空间的优先级进行存储,即先按照排序结果从高至低先存储至一级缓存空间,当一级缓存空间的存储达到容量阈值时,再进行第二缓存空间的存储,当第二缓存空间的存储达到容量阈值时,再进行第三缓存空间的存储。将最后一个存储在一级缓存空间的历史数据对应的统计访问数据确定为一级缓存空间的第一统计访问数据阈值,将最后一个存储在二级缓存空间的历史数据对应的统计访问数据确定为第二缓存空间的第二统计访问数据阈值,将最后一个存储在三级缓存空间的历史数据对应的统计访问数据确定为三级缓存空间的第三统计访问数据阈值。
三个缓存空间的统计访问数据阈值的大小排序为:一级缓存空间的统计访问数据阈值>二级缓存空间的数据的统计访问数据阈值>三级缓存空间的数据的统计访问数据阈值。
当得到了每个缓存空间对应的统计访问数据阈值后,可以根据每个目标数据对应的统计访问数据,将目标数据存储到对应的缓存空间中。例如,一级缓存空间的统计访问数据阈值为1000,二级缓存空间的统计访问数据阈值为500,三级缓存空间的统计访问数据阈值为100。若目标数据a对应的统计访问数据为1200时,由于目标数据a对应的统计访问数据>一级缓存空间的统计访问数据阈值,则将目标数据a缓存至一级缓存空间。若目标数据b对应的统计访问数据为800时,由于一级缓存空间的统计访问数据阈值>目标数据b对应的统计访问数据>二级缓存空间的统计访问数据阈值,则将目标数据b缓存至二级缓存空间。若目标数据c对应的统计访问数据为300时,由于二级缓存空间的统计访问数据阈值>目标数据c对应的统计访问数据>三级缓存空间的统计访问数据阈值,则将目标数据c缓存至三级缓存空间。
S113、根据第一统计访问数据阈值、第二统计访问数据阈值及第三统计访问数据阈值,对一级缓存空间、二级缓存空间及三级缓存空间进行配置。
其中,第一统计访问数据阈值对应于一级缓存空间,第二统计访问数据阈值对应于二级缓存空间,第三统计访问数据阈值对应于三级缓存空间。
本申请实施例提供的方法,通过对历史数据的访问情况进行统计分析,确定不同缓存空间的统计访问数据阈值,并根据目标数据的统计访问数据将其存储到相应的缓存空间中。这样可以根据数据的访问频率和重要性进行分层缓存,提高缓存的效率和命中率,从而提高数据查询的性能和响应速度。同时,通过合理配置缓存空间的大小和存储策略,可以有效地管理缓存资源,避免缓存空间的过度使用和浪费。
在本申请的图4对应的实施例提供的数据处理方法的一个可选实施例中,请参阅图10,步骤S140进一步包括子步骤S141至子步骤S143。具体的:
S141、若更新后的统计访问数据大于或等于第一统计访问数据阈值,则将第一目标数据缓存至一级缓存空间。
S142、若更新后的统计访问数据小于第一统计访问数据阈值且大于或等于第二统计访问数据阈值,则将第一目标数据缓存至二级缓存空间。
S143、若更新后的统计访问数据小于第二统计访问数据阈值且大于或等于第三统计访问数据阈值,则将第一目标数据缓存至三级缓存空间。
可以理解的是,根据更新后的统计访问数据及三个不同的统计访问数据阈值,调整第一目标数据的缓存空间,假设第一目标数据的缓存空间调整之前,第一目标数据缓存在三级缓存空间中,若更新后第一目标数据的统计访问数据大于二级缓存空间对应的统计访问数据阈值,则将第一目标数据缓存至二级缓存空间中;假设第一目标数据的缓存空间调整之前,第一目标数据缓存在二级缓存空间中,若更新后第一目标数据的统计访问数据大于一级缓存空间对应的统计访问数据阈值,则将第一目标数据缓存至一级缓存空间中;假设第一目标数据的缓存空间调整之前,第一目标数据缓存在一级缓存空间中,若更新后第一目标数据的统计访问数据大于一级缓存空间对应的统计访问数据阈值,则将第一目标数据仍然缓存至一级缓存空间中。
本申请实施例提供的方法,提高缓存命中率:将频繁访问的数据缓存到更高级别的缓存空间中,可以提高缓存的命中率,减少对后端数据源的请求次数,从而提高系统的性能。根据数据的访问频率动态调整缓存位置,可以使缓存空间得到更有效的利用,避免缓存空间的浪费。将经常访问的数据缓存到更高级别的缓存空间中,可以更快地响应客户端的请求,提高数据的实时性。
在本申请的图4对应的实施例提供的数据处理方法的一个可选实施例中,请参阅图11,本申请实施例提供的方法还包括步骤S210至步骤S250。具体的:
S210、获取缓存至一级缓存空间中的第一数据。
S220、统计在第一统计周期内第一数据的访问量数据。
S230、若第一数据在第一统计周期的访问量数据大于或等于第一统计访问数据阈值,则将第一数据缓存至一级缓存空间。
可以理解的是,步骤S230是判断第一数据的访问量是否足够高,如果访问量大于或等于第一统计访问数据阈值,则说明第一数据仍然比较热门,应该继续留在一级缓存空间中,以提高缓存的命中率。
S240、若第一数据在第一统计周期的访问量数据小于第一统计访问数据阈值且大于或等于第二统计访问数据阈值,则将第一数据缓存至二级缓存空间。
可以理解的是,步骤S240是判断第一数据的访问量是否有所下降,但仍然足够高。如果访问量小于第一统计访问数据阈值但大于或等于第二统计访问数据阈值,则说明第一数据的热度有所降低,但仍然有一定的价值,因此将其缓存至二级缓存空间中。
S250、若第一数据在第一统计周期的访问量数据小于第二统计访问数据阈值且大于或等于第三统计访问数据阈值,则将第一数据缓存至三级缓存空间。
可以理解的是,步骤S250是判断第一数据的访问量是否非常低,但仍然有一定的价值。如果访问量小于第二统计访问数据阈值但大于或等于第三统计访问数据阈值,则说明第一数据的热度已经非常低,但仍然可能被再次访问,因此将其缓存至三级缓存空间中。
可以理解的是,步骤S210至步骤S250是内存的淘汰机制,定期对缓存至一级缓存空间中的所有第一数据对应的访问量数据进行统计,如果第一数据对应的访问量大于或等于第一统计访问数据阈值,则第一数据继续在一级缓存空间中缓存;如果第一统计周期的第一数据对应的访问量有下降,且第一数据在第一统计周期的访问量数据小于第一统计访问数据阈值且大于或等于第二统计访问数据阈值,则将第一数据缓存至二级缓存空间;如果第一数据在第一统计周期的访问量数据小于第二统计访问数据阈值且大于或等于第三统计访问数据阈值,则将第一数据缓存至三级缓存空间。优选的,这种淘汰机制可以是LRU淘汰机制,LRU(Least Recently Used)淘汰机制是一种常见的缓存淘汰策略,它根据数据最后一次被访问的时间来确定哪些数据应该被淘汰出缓存。LRU 淘汰机制的基本思想是将最近最少使用的数据从缓存中删除,以释放缓存空间给更有用的数据。具体来说,当缓存已满,需要删除一些数据时,LRU 淘汰机制会选择最后一次被访问时间最远的数据进行删除。
本申请实施例提供的方法,提供了一种对内存的缓存数据进行优化的过程,根据第一数据的访问量数据,将其缓存至不同级别的缓存空间中,以优化缓存的使用效率。这种淘汰机制可以根据数据的热度进行动态调整,确保热门数据始终留在缓存中,同时释放不太热门的数据,以腾出缓存空间给更有价值的数据。
当二级缓存空间时文件缓存时,文件缓存的淘汰机制可以通过定期清理整合数据到新文件。具体的:文件缓存时包括多个子文件,假设有十个子文件则对这十个子文件进行编号一到十,通过期把编号1文件中缓存的数据定期缓存到编号2的文件中,并且释放编号1的缓存空间的方式,对文件缓存中的数据进行淘汰。
当三级缓存空间是redis时,redis缓存的淘汰机制可以通过过期时间对数据进行淘汰,即当数据缓存至redis中时,每个数据会对应一个过期时间,该过期时间可以是具体的过期的日期和时间,也可以是在redis中存储的时间。若该过期时间是具体的过期的日期和时间,则当达到该过期时间时,就将该数据从redis中删除。若是在redis中存储的时间,则会统计数据在redis中已经存储的时长,若数据在redis中已经存储的时长达到(等于或大于)该过期时间时,则就将该数据从redis中删除。
由于大量用户同时访问热点数据时,缓存的更新和同步可能会导致网络带宽的瓶颈,从而影响系统的性能。为了解决该问题,在本申请的图4对应的实施例提供的数据处理方法的一个可选实施例中,请参阅图12,本申请实施例提供的方法还包括步骤S310至步骤S320。具体的:
S310、接收K个第二目标对象发送的K个第二目标数据查询请求。
其中,K个第二目标数据查询请求对应于K个数据查询请求时间,K个数据查询请求时间中的两两数据查询请求时间的时间差值小于时间差阈值,K个第二目标数据查询请求均携带第二目标数据标识信息,K>1。
S320、根据K个第二目标数据查询请求中的任一第二目标数据查询请求携带的第二目标数据标识信息,按照优先级依次查询一级缓存空间、二级缓存空间及三级缓存空间,直到查询到第二目标数据标识对应的第二目标数据,并将第二目标数据返回至K个第二目标对象。
可以理解的是,在短时间内有大量的用户同时请求查询某一数据的这种高并发的情况时,接收全部的数据查询请求,这些数据查询请求都是对第二目标数据进行查询的请求,且这些数据查询请求对应的请求时间相近,具体的,两两数据查询请求的请求时间的差值小于时间差阈值。对于这种情况,本申请实施例提供的方法通过拦截机制,在多个请求并发访问同一资源是通过阻塞请求,只允许一个请求向下穿透,进行第二目标数查询,并且当查询到第二目标数据,将该第二目标数据共享给多个请求。举例说明,访问数据的key聚合度比较高,虽然第一二层单机cache能兜住大部分流量,但缓存时间相对也是最短的,在大并发流量第一波到达及遇到单机cache淘汰时,这部分流量会继续穿透到redis,由于redis的数据是按hash打散到不同实例的,此时多个相同key请求会被hash到同一个实例上,拉高该实例的负载,进而导致该实例整体访问延时变高,会导致客户端请求出现耗时毛刺。针对此情形可引入相同key拦截机制来防止热key问题发生,比如在golang中有singleflight库,利用golang语言map和sync.WaitGroup 库特性,在多个相同请求并发访问同一资源时通过waitGroup来阻塞请求,只允许一个请求向下游穿透,执行结果通过map机制共享给多个请求,极大避免了热key对redis的负载压力。执行流程如图13所示。如果高并发的数据查询请求的峰值流量主要集中在数据读取,且数据结构简单(如k-v型),则redis层可替换为存储组件SOS,或BDB存储。
本申请实施例提供的方法,对于多个请求并发访问同一资源的情况,通过拦截机制即只允许一个请求向下穿透,进行目标数查询,并将查询到的目标数据共享给进行请求访问的所有请求接口,可以避免在高并发情况下对同一数据的重复查询,减少缓存的压力,提高缓存的命中率和查询效率。同时,通过优先级依次查询不同级别的缓存空间,可以最大程度地利用缓存资源,提高系统的响应速度和性能。
下面对本申请中的数据处理装置进行详细描述,请参阅图14。图14为本申请实施例中数据处理装置10的一个实施例示意图,数据处理装置10包括:数据查询请求接收模块110、目标数据查找模块120、统计访问数据更新模块130及缓存空间调整模块140;具体的:
数据查询请求接收模块110,用于接收第一目标对象发送的第一目标数据查询请求,其中,第一目标数据查询请求携带第一目标数据标识信息;
目标数据查找模块120,用于根据第一目标数据标识信息,按照优先级依次查询一级缓存空间、二级缓存空间及三级缓存空间,直到查询到第一目标数据标识对应的第一目标数据,并将第一目标数据返回至第一目标对象,其中,一级缓存空间、二级缓存空间及三级缓存空间为预先配置的优先级不同的三个缓存空间,三个缓存空间对应于三个不同的统计访问数据阈值;
统计访问数据更新模块130,用于根据第一目标数据查询请求,对第一目标数据的统计访问数据进行更新,其中,统计访问数据用于表征第一目标数据在目标统计周期内的访问量数据;
缓存空间调整模块140,用于根据更新后的统计访问数据及三个不同的统计访问数据阈值,调整第一目标数据的缓存空间。
本申请实施例提供的装置,通过在三级缓存方式,将大量的需要在一级缓存空间中缓存的数据转移到存储成本更低的二级缓存空间中,降低一级缓存的缓存消耗,以及降低三级缓存的带宽消耗,进而降低存储成本。通过配置不同优先级的缓存空间,可以根据数据的访问频率和重要性对数据进行分层缓存,提高数据的查询效率。当接收到第一目标数据查询请求时,可以按照优先级依次查询一级缓存空间、二级缓存空间及三级缓存空间,直到查询到目标数据,从而减少了对后端存储系统的直接访问,提高了数据查询的响应速度。根据第一目标数据查询请求,对第一目标数据的统计访问数据进行更新,并根据更新后的统计访问数据及三个不同的统计访问数据阈值,调整第一目标数据的缓存空间,可以根据数据的实际访问情况动态地调整缓存空间的分配,使高频访问的数据能够更快地被缓存,提高缓存空间的利用率。通过分层缓存的设计,可以更好地支持系统的可扩展性。当系统需要处理更多的数据或更高的访问请求时,可以增加缓存空间的数量或调整缓存空间的大小,而无需对整个系统进行重新设计或重构。缓存空间可以提供数据的临时存储,减少对后端存储系统的直接访问,从而降低数据泄露或丢失的风险。同时,通过缓存空间的管理和控制,可以对缓存数据进行加密、备份等操作,进一步增强数据的安全性。
在本申请的图14对应的实施例提供的数据处理装置的一个可选实施例中,请参阅图14,目标数据查找模块120,还用于:
根据第一目标数据标识信息,在一级缓存空间进行查询;
若在一级缓存空间中查询到与第一目标数据标识信息对应的第一目标数据,则将第一目标数据返回至第一目标对象;
若在一级缓存空间中未查询到与第一目标数据标识信息对应的第一目标数据,则根据第一目标数据标识信息,在二级缓存空间进行查询;
若在二级缓存空间中查询到与第一目标数据标识信息对应的第一目标数据,则将第一目标数据返回至第一目标对象;
若在二级缓存空间中未查询到与第一目标数据标识信息对应的第一目标数据,则根据第一目标数据标识信息,在三级缓存空间进行查询;
若在三级缓存空间中查询到与第一目标数据标识信息对应的第一目标数据,则将第一目标数据返回至第一目标对象;
若在三级缓存空间中未查询到与第一目标数据标识信息对应的第一目标数据,则返回查询等待指令至第一目标对象。
本申请实施例提供的装置,按照缓存空间的层级依次进行查询,并在找到匹配的数据时将其返回给第一目标对象。这种缓存机制可以提高数据查询的效率,减少对底层数据库的直接访问,从而提高系统的性能和响应速度。
在本申请的图14对应的实施例提供的数据处理装置的一个可选实施例中,请参阅图14,目标数据查找模块120,还用于:
根据第一目标数据标识信息,在数据库中进行查询;
若在数据库中查询到与第一目标数据标识信息对应的第一目标数据,则将第一目标数据缓存至三级缓存空间中,以及将第一目标数据返回至第一目标对象。
本申请实施例提供的装置,在缓存中未找到目标数据时,通过查询数据库获取目标数据,并将其缓存至三级缓存空间,以便下次更快地获取该数据,这样可以提高数据查询的效率和响应速度,减少对数据库的直接访问,从而减轻数据库的负载,同时,将查询到的数据缓存至三级缓存空间中,也可以提高系统的缓存命中率,进一步提升系统的性能。
在本申请的图14对应的实施例提供的数据处理装置的一个可选实施例中,数据处理装置还包括:三层缓存空间配置模块;三层缓存空间配置模块用于:
获取M个历史数据对应的M个统计访问数据,其中,M>3;
根据M个统计访问数据,确定第一统计访问数据阈值、第二统计访问数据阈值及第三统计访问数据阈值,其中,第一统计访问数据阈值、第二统计访问数据阈值及第三统计访问数据阈值为M个统计访问数据中的三个统计访问数据,第一统计访问数据阈值>第二统计访问数据阈值>第三统计访问数据阈值;
根据第一统计访问数据阈值、第二统计访问数据阈值及第三统计访问数据阈值,对一级缓存空间、二级缓存空间及三级缓存空间进行配置,其中,第一统计访问数据阈值对应于一级缓存空间,第二统计访问数据阈值对应于二级缓存空间,第三统计访问数据阈值对应于三级缓存空间。
三层缓存空间配置模块还用于:
根据M个统计访问数据对M个历史数据进行降序排列;
依次将M个历史数据存储至一级缓存空间、二级缓存空间及三级缓存空间,其中,当一级缓存空间的存储量达到一级缓存空间的存储阈值时,将未存储在一级缓存空间中的历史数据依次存储至二级缓存空间及三级缓存空间;当二级缓存空间的存储量达到二级缓存空间的存储阈值时,将未存储在一级缓存空间和二级缓存空间中的历史数据依次存储至三级缓存空间;
将最后一个存储在一级缓存空间的历史数据对应的统计访问数据确定为第一统计访问数据阈值,将最后一个存储在二级缓存空间的历史数据对应的统计访问数据确定为第二统计访问数据阈值,将最后一个存储在三级缓存空间的历史数据对应的统计访问数据确定为第三统计访问数据阈值。本申请实施例提供的装置,通过对历史数据的访问情况进行统计分析,确定不同缓存空间的统计访问数据阈值,并根据目标数据的统计访问数据将其存储到相应的缓存空间中。这样可以根据数据的访问频率和重要性进行分层缓存,提高缓存的效率和命中率,从而提高数据查询的性能和响应速度。同时,通过合理配置缓存空间的大小和存储策略,可以有效地管理缓存资源,避免缓存空间的过度使用和浪费。
在本申请的图14对应的实施例提供的数据处理装置的一个可选实施例中,请参阅图14,缓存空间调整模块140,还用于:
若更新后的统计访问数据大于或等于第一统计访问数据阈值,则将第一目标数据缓存至一级缓存空间;
若更新后的统计访问数据小于第一统计访问数据阈值且大于或等于第二统计访问数据阈值,则将第一目标数据缓存至二级缓存空间;
若更新后的统计访问数据小于第二统计访问数据阈值且大于或等于第三统计访问数据阈值,则将第一目标数据缓存至三级缓存空间。
本申请实施例提供的装置,提高缓存命中率:将频繁访问的数据缓存到更高级别的缓存空间中,可以提高缓存的命中率,减少对后端数据源的请求次数,从而提高系统的性能。根据数据的访问频率动态调整缓存位置,可以使缓存空间得到更有效的利用,避免缓存空间的浪费。将经常访问的数据缓存到更高级别的缓存空间中,可以更快地响应客户端的请求,提高数据的实时性。
在本申请的图14对应的实施例提供的数据处理装置的一个可选实施例中,请参阅图15,数据处理装置10还包括:缓存淘汰模块200;缓存淘汰模块200,用于:
获取缓存至一级缓存空间中的第一数据;
统计在第一统计周期内第一数据的访问量数据;
若第一数据在第一统计周期的访问量数据大于或等于第一统计访问数据阈值,则将第一数据缓存至一级缓存空间;
若第一数据在第一统计周期的访问量数据小于第一统计访问数据阈值且大于或等于第二统计访问数据阈值,则将第一数据缓存至二级缓存空间;
若第一数据在第一统计周期的访问量数据小于第二统计访问数据阈值且大于或等于第三统计访问数据阈值,则将第一数据缓存至三级缓存空间。
本申请实施例提供的装置,提供了一种对内存的缓存数据进行优化的过程,根据第一数据的访问量数据,将其缓存至不同级别的缓存空间中,以优化缓存的使用效率。这种淘汰机制可以根据数据的热度进行动态调整,确保热门数据始终留在缓存中,同时释放不太热门的数据,以腾出缓存空间给更有价值的数据。
在本申请的图14对应的实施例提供的数据处理装置的一个可选实施例中,数据查询请求接收模块110,还用于接收K个第二目标对象发送的K个第二目标数据查询请求,其中,K个第二目标数据查询请求对应于K个数据查询请求时间,K个数据查询请求时间中的两两数据查询请求时间的时间差值小于时间差阈值,K个第二目标数据查询请求均携带第二目标数据标识信息,K>1;
目标数据查找模块120,还用于根据K个第二目标数据查询请求中的任一第二目标数据查询请求携带的第二目标数据标识信息,按照优先级依次查询一级缓存空间、二级缓存空间及三级缓存空间,直到查询到第二目标数据标识对应的第二目标数据,并将第二目标数据返回至K个第二目标对象。
本申请实施例提供的装置,通过这种方式,可以避免在高并发情况下对同一数据的重复查询,减少缓存的压力,提高缓存的命中率和查询效率。同时,通过优先级依次查询不同级别的缓存空间,可以最大程度地利用缓存资源,提高系统的响应速度和性能。
图16是本申请实施例提供的一种服务器结构示意图,该服务器300可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(central processingunits,CPU)322(例如,一个或一个以上处理器)和存储器332,一个或一个以上存储应用程序342或数据344的存储介质330(例如一个或一个以上海量存储设备)。其中,存储器332和存储介质330可以是短暂存储或持久存储。存储在存储介质330的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器322可以设置为与存储介质330通信,在服务器300上执行存储介质330中的一系列指令操作。
服务器300还可以包括一个或一个以上电源326,一个或一个以上有线或无线网络接口350,一个或一个以上输入输出接口358,和/或,一个或一个以上操作系统341,例如Windows ServerTM,Mac OS XTM,UnixTM, LinuxTM,FreeBSDTM等等。
上述实施例中由服务器所执行的步骤可以基于该图16所示的服务器结构。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (13)
1.一种数据处理方法,其特征在于,包括:
接收第一目标对象发送的第一目标数据查询请求,其中,所述第一目标数据查询请求携带第一目标数据标识信息;
根据所述第一目标数据标识信息,按照优先级依次查询一级缓存空间、二级缓存空间及三级缓存空间,直到查询到所述第一目标数据标识对应的第一目标数据,并将所述第一目标数据返回至所述第一目标对象,其中,所述一级缓存空间、二级缓存空间及三级缓存空间为预先配置的优先级不同的三个缓存空间,所述三个缓存空间对应于三个不同的统计访问数据阈值,所述三个缓存空间的统计访问数据阈值的大小排序为:一级缓存空间的统计访问数据阈值>二级缓存空间的数据的统计访问数据阈值>三级缓存空间的数据的统计访问数据阈值,当一级缓存空间的存储量达到一级缓存空间的存储阈值时,将未存储在一级缓存空间中的历史数据依次存储至二级缓存空间及三级缓存空间,当二级缓存空间的存储量达到二级缓存空间的存储阈值时,将未存储在一级缓存空间和二级缓存空间中的历史数据依次存储至三级缓存空间,对存储在一级缓存空间中的缓存数据进行读取的读取速度大于对存储在二级缓存空间中的缓存数据进行读取的读取速度,对存储在三级缓存空间中的缓存数据进行读取的读取速度大于对存储在二级缓存空间中的缓存数据进行读取的读取速度,所述一级缓存空间为内存,所述二级缓存空间为硬盘存储,所述三级缓存空间为redis存储;
根据所述第一目标数据查询请求,对所述第一目标数据的统计访问数据进行更新,其中,所述统计访问数据用于表征第一目标数据在目标统计周期内的访问量数据;
根据更新后的统计访问数据及所述三个不同的统计访问数据阈值,调整所述第一目标数据的缓存空间;
获取M个历史数据对应的M个统计访问数据,其中,M>3;
根据M个统计访问数据对所述M个历史数据进行降序排列;
将所述M个历史数据依次存储至所述一级缓存空间、所述二级缓存空间及所述三级缓存空间,其中,当所述一级缓存空间的存储量达到一级缓存空间的存储阈值时,将未存储在一级缓存空间中的历史数据依次存储至二级缓存空间及所述三级缓存空间;当所述二级缓存空间的存储量达到二级缓存空间的存储阈值时,将未存储在一级缓存空间和二级缓存空间中的历史数据依次存储至所述三级缓存空间;
将最后一个存储在一级缓存空间的历史数据对应的统计访问数据确定为第一统计访问数据阈值,将最后一个存储在二级缓存空间的历史数据对应的统计访问数据确定为第二统计访问数据阈值,将最后一个存储在三级缓存空间的历史数据对应的统计访问数据确定为第三统计访问数据阈值,其中,所述第一统计访问数据阈值、所述第二统计访问数据阈值及所述第三统计访问数据阈值为所述M个统计访问数据中的三个统计访问数据,所述第一统计访问数据阈值>所述第二统计访问数据阈值>所述第三统计访问数据阈值;
根据所述第一统计访问数据阈值、第二统计访问数据阈值及第三统计访问数据阈值,对所述一级缓存空间、二级缓存空间及三级缓存空间进行配置,其中,所述第一统计访问数据阈值对应于一级缓存空间,所述第二统计访问数据阈值对应于二级缓存空间,所述第三统计访问数据阈值对应于三级缓存空间;
其中,若在所述一级缓存空间、所述二级缓存空间及所述三级缓存空间中均无法查询到第一目标数据,则在数据库中查询到与第一目标数据标识信息对应的第一目标数据,则将所述第一目标数据缓存至所述三级缓存空间中,以及将所述第一目标数据返回至所述第一目标对象。
2.如权利要求1所述的数据处理方法,其特征在于,所述根据所述第一目标数据标识信息,按照优先级依次查询所述一级缓存空间、二级缓存空间及三级缓存空间,直到查询到所述第一目标数据标识对应的第一目标数据,并将所述第一目标数据返回至所述第一目标对象,包括:
根据所述第一目标数据标识信息,在所述一级缓存空间进行查询;
若在所述一级缓存空间中查询到与所述第一目标数据标识信息对应的第一目标数据,则将所述第一目标数据返回至所述第一目标对象;
若在所述一级缓存空间中未查询到与所述第一目标数据标识信息对应的第一目标数据,则根据所述第一目标数据标识信息,在所述二级缓存空间进行查询;
若在所述二级缓存空间中查询到与所述第一目标数据标识信息对应的第一目标数据,则将所述第一目标数据返回至所述第一目标对象;
若在所述二级缓存空间中未查询到与所述第一目标数据标识信息对应的第一目标数据,则根据所述第一目标数据标识信息,在所述三级缓存空间进行查询;
若在所述三级缓存空间中查询到与所述第一目标数据标识信息对应的第一目标数据,则将所述第一目标数据返回至所述第一目标对象;
若在所述三级缓存空间中未查询到与所述第一目标数据标识信息对应的第一目标数据,则返回查询等待指令至所述第一目标对象。
3.如权利要求1所述的数据处理方法,其特征在于,所述根据更新后的统计访问数据及所述三个不同的统计访问数据阈值,调整所述第一目标数据的缓存空间,包括:
若更新后的统计访问数据大于或等于所述第一统计访问数据阈值,则将所述第一目标数据缓存至所述一级缓存空间;
若更新后的统计访问数据小于所述第一统计访问数据阈值且大于或等于所述第二统计访问数据阈值,则将所述第一目标数据缓存至所述二级缓存空间;
若更新后的统计访问数据小于所述第二统计访问数据阈值且大于或等于所述第三统计访问数据阈值,则将所述第一目标数据缓存至所述三级缓存空间。
4.如权利要求1所述的数据处理方法,其特征在于,所述方法还包括:
获取缓存至所述一级缓存空间中的第一数据;
统计在第一统计周期内第一数据的访问量数据;
若所述第一数据在所述第一统计周期的访问量数据大于或等于所述第一统计访问数据阈值,则将所述第一数据缓存至所述一级缓存空间;
若所述第一数据在所述第一统计周期的访问量数据小于所述第一统计访问数据阈值且大于或等于所述第二统计访问数据阈值,则将所述第一数据缓存至所述二级缓存空间;
若所述第一数据在所述第一统计周期的访问量数据小于所述第二统计访问数据阈值且大于或等于所述第三统计访问数据阈值,则将所述第一数据缓存至所述三级缓存空间。
5.如权利要求1所述的数据处理方法,其特征在于,所述方法还包括:
接收K个第二目标对象发送的K个第二目标数据查询请求,其中,所述K个第二目标数据查询请求对应于K个数据查询请求时间,所述K个数据查询请求时间中的两两数据查询请求时间的时间差值小于时间差阈值,所述K个第二目标数据查询请求均携带第二目标数据标识信息,K>1;
根据所述K个第二目标数据查询请求中的任一第二目标数据查询请求携带的第二目标数据标识信息,按照优先级依次查询所述一级缓存空间、二级缓存空间及三级缓存空间,直到查询到所述第二目标数据标识对应的第二目标数据,并将所述第二目标数据返回至所述K个第二目标对象。
6.一种数据处理装置,其特征在于,包括:
数据查询请求接收模块,用于接收第一目标对象发送的第一目标数据查询请求,其中,所述第一目标数据查询请求携带第一目标数据标识信息;
目标数据查找模块,用于根据所述第一目标数据标识信息,按照优先级依次查询一级缓存空间、二级缓存空间及三级缓存空间,直到查询到所述第一目标数据标识对应的第一目标数据,并将所述第一目标数据返回至所述第一目标对象,其中,所述一级缓存空间、二级缓存空间及三级缓存空间为预先配置的优先级不同的三个缓存空间,所述三个缓存空间对应于三个不同的统计访问数据阈值,所述三个缓存空间的统计访问数据阈值的大小排序为:一级缓存空间的统计访问数据阈值>二级缓存空间的数据的统计访问数据阈值>三级缓存空间的数据的统计访问数据阈值,当一级缓存空间的存储量达到一级缓存空间的存储阈值时,将未存储在一级缓存空间中的历史数据依次存储至二级缓存空间及三级缓存空间,当二级缓存空间的存储量达到二级缓存空间的存储阈值时,将未存储在一级缓存空间和二级缓存空间中的历史数据依次存储至三级缓存空间,对存储在一级缓存空间中的缓存数据进行读取的读取速度大于对存储在二级缓存空间中的缓存数据进行读取的读取速度,对存储在三级缓存空间中的缓存数据进行读取的读取速度大于对存储在二级缓存空间中的缓存数据进行读取的读取速度,所述一级缓存空间为内存,所述二级缓存空间为硬盘存储,所述三级缓存空间为redis存储;
统计访问数据更新模块,用于根据所述第一目标数据查询请求,对所述第一目标数据的统计访问数据进行更新,其中,所述统计访问数据用于表征第一目标数据在目标统计周期内的访问量数据;
缓存空间调整模块,用于根据更新后的统计访问数据及所述三个不同的统计访问数据阈值,调整所述第一目标数据的缓存空间;
三层缓存空间配置模块,用于:
获取M个历史数据对应的M个统计访问数据,其中,M>3;
根据M个统计访问数据对所述M个历史数据进行降序排列;
将所述M个历史数据依次存储至所述一级缓存空间、所述二级缓存空间及所述三级缓存空间,其中,当所述一级缓存空间的存储量达到一级缓存空间的存储阈值时,将未存储在一级缓存空间中的历史数据依次存储至二级缓存空间及所述三级缓存空间;当所述二级缓存空间的存储量达到二级缓存空间的存储阈值时,将未存储在一级缓存空间和二级缓存空间中的历史数据依次存储至所述三级缓存空间;
将最后一个存储在一级缓存空间的历史数据对应的统计访问数据确定为第一统计访问数据阈值,将最后一个存储在二级缓存空间的历史数据对应的统计访问数据确定为第二统计访问数据阈值,将最后一个存储在三级缓存空间的历史数据对应的统计访问数据确定为第三统计访问数据阈值,其中,所述第一统计访问数据阈值、所述第二统计访问数据阈值及所述第三统计访问数据阈值为所述M个统计访问数据中的三个统计访问数据,所述第一统计访问数据阈值>所述第二统计访问数据阈值>所述第三统计访问数据阈值;
根据所述第一统计访问数据阈值、第二统计访问数据阈值及第三统计访问数据阈值,对所述一级缓存空间、二级缓存空间及三级缓存空间进行配置,其中,所述第一统计访问数据阈值对应于一级缓存空间,所述第二统计访问数据阈值对应于二级缓存空间,所述第三统计访问数据阈值对应于三级缓存空间;
其中,所述目标数据查找模块若在所述一级缓存空间、所述二级缓存空间及所述三级缓存空间中均无法查询到第一目标数据,根据第一目标数据标识信息,在数据库进行查询;若在数据库中查询到与所述第一目标数据标识信息对应的第一目标数据,则将所述第一目标数据缓存至所述三级缓存空间中,以及将所述第一目标数据返回至所述第一目标对象。
7.如权利要求6所述的装置,其特征在于,所述目标数据查找模块,具体用于:
根据所述第一目标数据标识信息,在所述一级缓存空间进行查询;
若在所述一级缓存空间中查询到与所述第一目标数据标识信息对应的第一目标数据,则将所述第一目标数据返回至所述第一目标对象;
若在所述一级缓存空间中未查询到与所述第一目标数据标识信息对应的第一目标数据,则根据所述第一目标数据标识信息,在所述二级缓存空间进行查询;
若在所述二级缓存空间中查询到与所述第一目标数据标识信息对应的第一目标数据,则将所述第一目标数据返回至所述第一目标对象;
若在所述二级缓存空间中未查询到与所述第一目标数据标识信息对应的第一目标数据,则根据所述第一目标数据标识信息,在所述三级缓存空间进行查询;
若在所述三级缓存空间中查询到与所述第一目标数据标识信息对应的第一目标数据,则将所述第一目标数据返回至所述第一目标对象;
若在所述三级缓存空间中未查询到与所述第一目标数据标识信息对应的第一目标数据,则返回查询等待指令至所述第一目标对象。
8.如权利要求6所述的装置,其特征在于,所述缓存空间调整模块,具体用于:
若更新后的统计访问数据大于或等于所述第一统计访问数据阈值,则将所述第一目标数据缓存至所述一级缓存空间;
若更新后的统计访问数据小于所述第一统计访问数据阈值且大于或等于所述第二统计访问数据阈值,则将所述第一目标数据缓存至所述二级缓存空间;
若更新后的统计访问数据小于所述第二统计访问数据阈值且大于或等于所述第三统计访问数据阈值,则将所述第一目标数据缓存至所述三级缓存空间。
9.如权利要求6所述的装置,其特征在于,所述装置还包括缓存淘汰模块;
所述缓存淘汰模块,用于:
获取缓存至所述一级缓存空间中的第一数据;
统计在第一统计周期内第一数据的访问量数据;
若所述第一数据在所述第一统计周期的访问量数据大于或等于所述第一统计访问数据阈值,则将所述第一数据缓存至所述一级缓存空间;
若所述第一数据在所述第一统计周期的访问量数据小于所述第一统计访问数据阈值且大于或等于所述第二统计访问数据阈值,则将所述第一数据缓存至所述二级缓存空间;
若所述第一数据在所述第一统计周期的访问量数据小于所述第二统计访问数据阈值且大于或等于所述第三统计访问数据阈值,则将所述第一数据缓存至所述三级缓存空间。
10.如权利要求6所述的装置,其特征在于,所述数据查询请求接收模块,还用于接收K个第二目标对象发送的K个第二目标数据查询请求,其中,所述K个第二目标数据查询请求对应于K个数据查询请求时间,所述K个数据查询请求时间中的两两数据查询请求时间的时间差值小于时间差阈值,所述K个第二目标数据查询请求均携带第二目标数据标识信息,K>1;
所述目标数据查找模块,还用于根据所述K个第二目标数据查询请求中的任一第二目标数据查询请求携带的第二目标数据标识信息,按照优先级依次查询所述一级缓存空间、二级缓存空间及三级缓存空间,直到查询到所述第二目标数据标识对应的第二目标数据,并将所述第二目标数据返回至所述K个第二目标对象。
11.一种计算机设备,其特征在于,包括:存储器、收发器、处理器以及总线系统;
其中,所述存储器用于存储程序;
所述处理器用于执行所述存储器中的程序,包括执行如权利要求1至5中任一项所述的数据处理方法;
所述总线系统用于连接所述存储器以及所述处理器,以使所述存储器以及所述处理器进行通信。
12.一种计算机可读存储介质,包括指令,其特征在于,当其在计算机上运行时,使得计算机执行如权利要求1至5中任一项所述的数据处理方法。
13.一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行如权利要求1至5中任一项所述的数据处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410031006.9A CN117539915B (zh) | 2024-01-09 | 2024-01-09 | 一种数据处理方法及相关装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410031006.9A CN117539915B (zh) | 2024-01-09 | 2024-01-09 | 一种数据处理方法及相关装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117539915A CN117539915A (zh) | 2024-02-09 |
CN117539915B true CN117539915B (zh) | 2024-04-23 |
Family
ID=89788480
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410031006.9A Active CN117539915B (zh) | 2024-01-09 | 2024-01-09 | 一种数据处理方法及相关装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117539915B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111858676A (zh) * | 2020-07-24 | 2020-10-30 | 政采云有限公司 | 一种数据处理的方法及装置 |
CN113190580A (zh) * | 2021-04-16 | 2021-07-30 | 国能大渡河检修安装有限公司 | 一种水力发电站数据缓存操作方法和系统 |
CN114817173A (zh) * | 2022-03-07 | 2022-07-29 | 中科前沿(长沙)信息科技有限公司 | 多级缓存的数据处理方法、装置、设备与介质 |
CN114840546A (zh) * | 2021-02-02 | 2022-08-02 | 中国石油天然气股份有限公司 | 油气管道数据查询方法、装置、服务器和存储介质 |
CN115221200A (zh) * | 2021-04-16 | 2022-10-21 | 中国移动通信集团辽宁有限公司 | 数据查询方法、装置、电子设备和存储介质 |
CN115481151A (zh) * | 2022-07-22 | 2022-12-16 | 国网安徽省电力有限公司铜陵供电公司 | 基于Redis分布式缓存的数据处理系统 |
CN115757492A (zh) * | 2022-11-18 | 2023-03-07 | 中国平安财产保险股份有限公司 | 一种热点数据的处理方法、装置、计算机设备及存储介质 |
CN117009389A (zh) * | 2023-07-18 | 2023-11-07 | 中国联合网络通信集团有限公司 | 数据缓存方法、装置、电子设备和可读存储介质 |
-
2024
- 2024-01-09 CN CN202410031006.9A patent/CN117539915B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111858676A (zh) * | 2020-07-24 | 2020-10-30 | 政采云有限公司 | 一种数据处理的方法及装置 |
CN114840546A (zh) * | 2021-02-02 | 2022-08-02 | 中国石油天然气股份有限公司 | 油气管道数据查询方法、装置、服务器和存储介质 |
CN113190580A (zh) * | 2021-04-16 | 2021-07-30 | 国能大渡河检修安装有限公司 | 一种水力发电站数据缓存操作方法和系统 |
CN115221200A (zh) * | 2021-04-16 | 2022-10-21 | 中国移动通信集团辽宁有限公司 | 数据查询方法、装置、电子设备和存储介质 |
CN114817173A (zh) * | 2022-03-07 | 2022-07-29 | 中科前沿(长沙)信息科技有限公司 | 多级缓存的数据处理方法、装置、设备与介质 |
CN115481151A (zh) * | 2022-07-22 | 2022-12-16 | 国网安徽省电力有限公司铜陵供电公司 | 基于Redis分布式缓存的数据处理系统 |
CN115757492A (zh) * | 2022-11-18 | 2023-03-07 | 中国平安财产保险股份有限公司 | 一种热点数据的处理方法、装置、计算机设备及存储介质 |
CN117009389A (zh) * | 2023-07-18 | 2023-11-07 | 中国联合网络通信集团有限公司 | 数据缓存方法、装置、电子设备和可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN117539915A (zh) | 2024-02-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11561930B2 (en) | Independent evictions from datastore accelerator fleet nodes | |
US8572130B2 (en) | Replacement policy for resource container | |
US20040030731A1 (en) | System and method for accessing files in a network | |
US10409728B2 (en) | File access predication using counter based eviction policies at the file and page level | |
CN104679898A (zh) | 一种大数据访问方法 | |
CN109344122B (zh) | 一种基于文件预创策略的分布式元数据管理方法及系统 | |
US20130290636A1 (en) | Managing memory | |
US11080207B2 (en) | Caching framework for big-data engines in the cloud | |
CN108540510B (zh) | 一种云主机创建方法、装置及云服务系统 | |
US9483523B2 (en) | Information processing apparatus, distributed processing system, and distributed processing method | |
CN102984256B (zh) | 一种基于授权方式的元数据的处理方法和系统 | |
CN114817195A (zh) | 一种分布式存储缓存管理的方法、系统、存储介质及设备 | |
CN107992270B (zh) | 一种多控存储系统全局共享缓存的方法及装置 | |
CN114844846A (zh) | 一种基于可编程交换机的多级缓存分布式键值存储系统 | |
JP5661355B2 (ja) | 分散キャッシュシステム | |
JP6406254B2 (ja) | ストレージ装置、データアクセス方法およびデータアクセスプログラム | |
CN117539915B (zh) | 一种数据处理方法及相关装置 | |
CN115328857A (zh) | 文件访问方法、装置、客户端及存储介质 | |
CN115168416A (zh) | 数据缓存方法、装置、存储介质及电子装置 | |
Ghandeharizadeh et al. | Rejig: a scalable online algorithm for cache server configuration changes | |
d'Orazio et al. | Building adaptable cache services | |
EP4168899A1 (en) | Sparse file system implemented with multiple cloud services | |
CN113297106A (zh) | 基于混合存储的数据置换方法、相关方法及装置和系统 | |
JP7458610B2 (ja) | データベースシステム、及びクエリ実行方法 | |
CN114356230B (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 |