CN115599711A - 缓存数据处理方法、系统、装置、设备及计算机存储介质 - Google Patents
缓存数据处理方法、系统、装置、设备及计算机存储介质 Download PDFInfo
- Publication number
- CN115599711A CN115599711A CN202211518389.XA CN202211518389A CN115599711A CN 115599711 A CN115599711 A CN 115599711A CN 202211518389 A CN202211518389 A CN 202211518389A CN 115599711 A CN115599711 A CN 115599711A
- Authority
- CN
- China
- Prior art keywords
- data
- cache
- target
- cache data
- value pair
- 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
- 238000003672 processing method Methods 0.000 title abstract description 21
- 230000007246 mechanism Effects 0.000 claims abstract description 60
- 238000004590 computer program Methods 0.000 claims description 56
- 238000000034 method Methods 0.000 claims description 54
- 230000005540 biological transmission Effects 0.000 claims description 5
- 230000008569 process Effects 0.000 description 21
- 238000007726 management method Methods 0.000 description 15
- 238000010586 diagram Methods 0.000 description 13
- 238000004891 communication Methods 0.000 description 7
- 230000000875 corresponding effect Effects 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 7
- 230000009471 action Effects 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 230000002457 bidirectional effect Effects 0.000 description 3
- 238000013500 data storage Methods 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000004886 process control Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
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/0877—Cache access modes
-
- 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)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种缓存数据处理方法、系统、装置、设备及计算机存储介质,获取缓存数据的访问信息;基于访问信息及缓存文件置换机制确定缓存数据在缓存数据链表中的前一个目标数据及后一个目标数据,缓存数据链表用于记录与缓存文件置换机制匹配的数据;基于前一个目标数据及后一个目标数据生成缓存数据的目标键值对并存储,以基于目标键值对对缓存数据进行缓存管理。本申请可以基于前一个目标数据及后一个目标数据生成缓存数据的目标键值对并存储,这样,只需读取该目标键值对,便可以快速知晓该缓存数据在缓存数据链表中的前一个目标数据及后一个目标数据,实现了借助键值对来快速对缓存数据链表进行存储和还原,便于快速对缓存数据进行处理。
Description
技术领域
本申请涉及计算机技术领域,更具体地说,涉及缓存数据处理方法、系统、装置、设备及计算机存储介质。
背景技术
缓存是一种提高数据读取性能的技术,缓存的工作原理是当CPU(centralprocessing unit,中央处理器)要读取一个数据时,首先从CPU缓存中查找,找到就立即读取并送给CPU处理;没有找到,就从速率相对较慢的内存中读取并送给CPU处理,同时把这个数据所在的数据块调入缓存中,可以使得以后对整块数据的读取都从缓存中进行,不必再调用内存。然而,缓存的大小有限,当缓存空间被占满时,便需要一个策略来决定哪些数据应该被清理出去,此策略也即缓存文件置换机制。在此过程中,为了便于描述、记录缓存文件置换机制,可以基于二叉树的方法来对缓存文件置换机制进行描述、记录,然而此方法的处理效率较慢,导致对缓存数据的处理效率较慢。
综上所述,如何提高对缓存数据的处理效率是目前本领域技术人员亟待解决的问题。
发明内容
本申请的目的是提供一种缓存数据处理方法,其能在一定程度上解决如何提高对缓存数据的处理效率的技术问题。本申请还提供了一种缓存数据处理系统、装置、设备及计算机可读存储介质。
为了实现上述目的,本申请提供如下技术方案:
一种缓存数据处理方法,包括:
获取缓存数据的访问信息;
基于所述访问信息及缓存文件置换机制确定所述缓存数据在缓存数据链表中的前一个目标数据及后一个目标数据,所述缓存数据链表用于记录与所述缓存文件置换机制匹配的数据;
基于所述前一个目标数据及所述后一个目标数据生成所述缓存数据的目标键值对并存储,以基于所述目标键值对对所述缓存数据进行缓存管理。
优选的,所述基于所述访问信息及缓存文件置换机制确定所述缓存数据在缓存数据链表中的前一个目标数据及后一个目标数据,包括:
基于所述访问信息及所述缓存文件置换机制,确定所述缓存数据在所述缓存数据链表中的目标位置信息;
基于所述目标位置信息确定所述前一个目标数据及所述后一个目标数据。
优选的,所述基于所述前一个目标数据及所述后一个目标数据生成所述缓存数据的目标键值对,包括:
按照预设的先后顺序,将所述前一个目标数据的标识及所述后一个目标数据的标识组合后作为所述目标键值对的value值;
将所述缓存数据的标识作为所述目标键值对的key值。
优选的,所述按照预设的先后顺序,将所述前一个目标数据的标识及所述后一个目标数据的标识组合后作为所述目标键值对的value值,包括:
按照所述前一个目标数据的标识在前、所述后一个目标数据的标识在后的先后顺序,将所述前一个目标数据的标识及所述后一个目标数据的标识组合后作为所述目标键值对的value值。
优选的,所述将所述前一个目标数据的标识及所述后一个目标数据的标识组合后作为所述目标键值对的value值,包括:
将0扩展后的所述前一个目标数据的标识及0扩展后的所述后一个目标数据的标识组合后作为所述目标键值对的value值;
所述将所述缓存数据的标识作为所述目标键值对的key值,包括:
将0扩展后的所述缓存数据的标识作为所述目标键值对的key值;
其中,所述0扩展包括在标识前添加0。
优选的,所述基于所述目标位置信息确定所述前一个目标数据及所述后一个目标数据,包括:
若所述缓存数据链表中只有所述缓存数据,则将预设的头链常数作为所述前一个目标数据;将预设的尾链常数作为所述后一个目标数据;
若所述目标位置信息表征所述缓存数据位于所述缓存数据链表的头部,且所述缓存数据链表有其他数据,则将预设的头链常数作为所述前一个目标数据,将所述目标位置信息之后的数据作为所述后一个目标数据;
若所述目标位置信息表征所述缓存数据位于所述缓存数据链表的中间,则将所述目标位置信息之前的数据作为所述前一个目标数据,将所述目标位置信息之后的数据作为所述后一个目标数据;
若所述目标位置信息表征所述缓存数据位于所述缓存数据链表的尾部,则将所述目标位置信息之前的数据作为所述前一个目标数据,将预设的尾链常数作为所述后一个目标数据。
优选的,所述基于所述前一个目标数据及所述后一个目标数据生成所述缓存数据的目标键值对并存储之后,还包括:
记录所述缓存数据链表中的第一个数据及最后一个目标数据。
优选的,所述记录所述缓存数据链表中的第一个数据及最后一个目标数据,包括:
在第一预设存储空间中记录所述缓存数据链表中的第一个数据;
在第二预设存储空间中记录所述缓存数据链表中的最后一个目标数据。
优选的,所述基于所述前一个目标数据及所述后一个目标数据生成所述缓存数据的目标键值对并存储之后,还包括:
更新所述缓存数据链表中已有数据的已有键值对。
优选的,所述更新所述缓存数据链表中已有数据的已有键值对,包括:
若存在所述缓存数据的所述已有键值对,则基于所述缓存数据的所述已有键值对的value值确定所述缓存数据在所述缓存数据链表中的前一个原始数据及后一个原始数据,更新非预设的头链常数的所述前一个原始数据的所述已有键值对,和/或更新非预设的尾链常数的所述后一个原始数据的所述已有键值对;更新非所述头链常数的所述前一个目标数据的所述已有键值对,和/或更新非所述尾链常数的所述后一个目标数据的所述已有键值对;和/或删除移出所述缓存数据链表中的所述已有数据的所述已有键值对;
若不存在所述缓存数据的所述已有键值对,则更新非所述头链常数的所述前一个目标数据的所述已有键值对,和/或更新非所述尾链常数的所述后一个目标数据的所述已有键值对;和/或删除移出所述缓存数据链表中的所述已有数据的所述已有键值对。
优选的,所述基于所述前一个目标数据及所述后一个目标数据生成所述缓存数据的目标键值对,包括:
若所述缓存数据存在已有键值对;
则基于所述前一个目标数据和/或所述后一个目标数据对所述已有键值对进行更新,得到所述目标键值对。
一种缓存数据处理装置,包括目标KVS电路,所述目标KVS电路包括KVS电路流程控制状态机及连接的第一内存控制电路;
所述KVS电路流程控制状态机用于获取缓存数据的访问信息;基于所述访问信息及缓存文件置换机制确定所述缓存数据在缓存数据链表中的前一个目标数据及后一个目标数据,所述缓存数据链表用于记录与所述缓存文件置换机制匹配的数据;基于所述前一个目标数据及所述后一个目标数据生成所述缓存数据的目标键值对;
所述第一内存控制电路用于对所述目标键值对进行存储,以基于所述目标键值对对所述缓存数据进行缓存管理。
优选的,所述目标KVS电路包括:
与所述KVS电路流程控制状态机连接的0扩展器,用于对数据标识进行0扩展;
与所述KVS电路流程控制状态机连接的反0扩展器,用于去除0扩展后的数据标识中的0。
优选的,所述目标KVS电路包括:
头链暂存器,用于记录所述缓存数据链表中的第一个数据;
尾链暂存器,用于记录所述缓存数据链表中的最后一个目标数据。
优选的,还包括:
与所述0扩展器及所述反0扩展器连接的资料库KVS电路;
与所述资料库KVS电路连接的第二内存控制电路;
其中,所述资料库KVS电路用于通过所述第二内存控制电路对资料库内存进行数据管理。
优选的,还包括:
与所述第二内存控制电路连接的资料库内存;
与所述第一内存控制电路连接的缓存数据链表记录内存。
优选的,还包括:
与所述资料库KVS电路连接的网络传输介面。
一种缓存数据处理系统,包括:
第一获取模块,用于获取缓存数据的访问信息;
第一确定模块,用于基于所述访问信息及缓存文件置换机制确定所述缓存数据在缓存数据链表中的前一个目标数据及后一个目标数据,所述缓存数据链表用于记录与所述缓存文件置换机制匹配的数据;
第一生成模块,用于基于所述前一个目标数据及所述后一个目标数据生成所述缓存数据的目标键值对并存储,以基于所述目标键值对对所述缓存数据进行缓存管理。
一种缓存数据处理设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上任一所述缓存数据处理方法的步骤。
一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序被处理器执行时实现如上任一所述缓存数据处理方法的步骤。
本申请提供的一种缓存数据处理方法,获取缓存数据的访问信息;基于访问信息及缓存文件置换机制确定缓存数据在缓存数据链表中的前一个目标数据及后一个目标数据,缓存数据链表用于记录与缓存文件置换机制匹配的数据;基于前一个目标数据及后一个目标数据生成缓存数据的目标键值对并存储,以基于目标键值对对缓存数据进行缓存管理。本申请中,可以基于缓存数据的访问信息及缓存文件置换机制确定缓存数据在缓存数据链表中的前一个目标数据及后一个目标数据,基于前一个目标数据及后一个目标数据生成缓存数据的目标键值对并存储,这样,只需读取该目标键值对,便可以快速知晓该缓存数据在缓存数据链表中的前一个目标数据及后一个目标数据,实现了借助键值对来快速对缓存数据链表进行存储和还原,便于快速对缓存数据进行处理。本申请提供的一种缓存数据处理系统、装置、设备及计算机可读存储介质也解决了相应技术问题。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例提供的一种缓存数据处理方法的第一流程图;
图2为本申请实施例提供的一种缓存数据处理方法的第二流程图;
图3为目标键值对的示意图;
图4为0扩展后的目标键值对的示意图;
图5为本申请实施例提供的一种缓存数据处理方法的第三流程图;
图6为本申请实施例提供的一种缓存数据处理方法的第四流程图;
图7为缓存数据链表中第一个数据及最后一个数据的记录示意图;
图8为本申请实施例提供的一种缓存数据处理方法的第五流程图;
图9为缓存数据链表中的数据存储变化情况图;
图10为本申请中键值对的信息图;
图11为本申请实施例提供的一种缓存数据处理装置的结构示意图;
图12为本申请实施例提供的一种缓存数据处理装置的另一结构示意图
图13为本申请实施例提供的一种缓存数据处理系统的结构示意图;
图14为本申请实施例提供的一种缓存数据处理设备的结构示意图;
图15为本申请实施例提供的一种缓存数据处理设备的另一结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
请参阅图1,图1为本申请实施例提供的一种缓存数据处理方法的第一流程图。
本申请实施例提供的一种缓存数据处理方法,可以包括以下步骤:
步骤S101:获取缓存数据的访问信息。
实际应用中,可以先获取缓存数据的访问信息,缓存数据的类型及访问信息的内容等可以根据具体应用场景来确定,比如缓存数据可以图片数据、视频数据、服务器运行数据等,访问信息可以为访问的频次、访问的时长等。
步骤S102:基于访问信息及缓存文件置换机制确定缓存数据在缓存数据链表中的前一个目标数据及后一个目标数据,缓存数据链表用于记录与缓存文件置换机制匹配的数据。
步骤S103:基于前一个目标数据及后一个目标数据生成缓存数据的目标键值对并存储,以基于目标键值对对缓存数据进行缓存管理。
实际应用中,在获取缓存数据的访问信息之后,需基于访问信息及缓存文件置换机制确定缓存数据在缓存数据链表中的前一个目标数据及后一个目标数据,以便后续基于该前一个目标数据及后一个目标数据确定缓存数据在缓存数据链表中的存储信息。且在此之后,需基于前一个目标数据及后一个目标数据生成缓存数据的目标键值对并存储,以基于目标键值对对缓存数据进行缓存管理,不难理解,由于目标键值对中存储有前一个目标数据及后一个目标数据的相应信息,所以只需读取缓存数据的目标键值对,便可以确定该缓存数据在缓存数据链表中的前一个目标数据及后一个目标数据,这样,只需读取所有的键值对,便可以确定每个缓存数据在缓存数据链表中的前一个目标数据及后一个目标数据,再按照先后顺序对所有的数据进行排序便可以还原出缓存数据链表,既可以借助键值对来方便的存储缓存数据链表,又可以借助键值对方便的还原出缓存数据链表。
需要说明的是,本申请中的缓存文件置换机制的类型可以根据实际需要确定,比如缓存文件置换机制可以为先进先出算法(First In First Out Algorithm,FIFO)、最少使用算法(least frequently used,LFU)、最近最少使用算法(least recently used,LRU)、非最近使用算法(NMRU)等,相应的,缓存数据链表用于记录与缓存文件置换机制匹配的数据,其具体的数据缓存情况可以根据缓存文件置换机制来确定。
本申请提供的一种缓存数据处理方法,获取缓存数据的访问信息;基于访问信息及缓存文件置换机制确定缓存数据在缓存数据链表中的前一个目标数据及后一个目标数据,缓存数据链表用于记录与缓存文件置换机制匹配的数据;基于前一个目标数据及后一个目标数据生成缓存数据的目标键值对并存储,以基于目标键值对对缓存数据进行缓存管理。本申请中,可以基于缓存数据的访问信息及缓存文件置换机制确定缓存数据在缓存数据链表中的前一个目标数据及后一个目标数据,基于前一个目标数据及后一个目标数据生成缓存数据的目标键值对并存储,这样,只需读取该目标键值对,便可以快速知晓该缓存数据在缓存数据链表中的前一个目标数据及后一个目标数据,实现了借助键值对来快速对缓存数据链表进行存储和还原,便于快速对缓存数据进行处理。
请参阅图2,图2为本申请实施例提供的一种缓存数据处理方法的第二流程图。
本申请实施例提供的一种缓存数据处理方法,可以包括以下步骤:
步骤S201:获取缓存数据的访问信息。
步骤S202:基于访问信息及缓存文件置换机制,确定缓存数据在缓存数据链表中的目标位置信息。
步骤S203:基于目标位置信息确定前一个目标数据及后一个目标数据,缓存数据链表用于记录与缓存文件置换机制匹配的数据。
实际应用中,在基于访问信息及缓存文件置换机制确定缓存数据在缓存数据链表中的前一个目标数据及后一个目标数据的过程中,可以基于访问信息及缓存文件置换机制,确定缓存数据在缓存数据链表中的目标位置信息,以缓存文件置换机制为最近最少使用算法为例,假设缓存数据为最近最少使用的数据,则该缓存数据在缓存数据链表中为位置信息为位于缓存数据链表的尾部等;并基于目标位置信息快速确定前一个目标数据及后一个目标数据。
步骤S204:按照预设的先后顺序,将前一个目标数据的标识及后一个目标数据的标识组合后作为目标键值对的value值。
步骤S205:将缓存数据的标识作为目标键值对的key值来生成缓存数据的目标键值对并存储,以基于目标键值对对缓存数据进行缓存管理。
实际应用中,在基于前一个目标数据及后一个目标数据生成缓存数据的目标键值对的过程中,可以按照预设的先后顺序,将前一个目标数据的标识及后一个目标数据的标识组合后作为目标键值对的value值;将缓存数据的标识作为目标键值对的key值来生成目标键值对。且具体应用场景中,为了便于区分前一个目标数据的标识及后一个目标数据的标识,可以在value中划分出两个存储单元,比如分别记为Value[2N+1;N+1]和Value[N;0],并用Value[2N+1;N+1]来存储前一个目标数据的标识,用Value[N;0]存储后一个目标数据的标识,以在目标键值对的value值中区分保存前一个目标数据的标识及后一个目标数据的标识,为便于理解,请参阅图3,A、B、C、D、X五个数据的键值对信息如图所示,其中数据A的前一个目标数据为头端常数,后一个目标数据为B,也即数据A为缓存数据链表中第一个要出链的数据,此时,缓存数据链表中所存储的数据顺序为A-B-X-D-C,由此可见,借助本申请的键值对可以快速对缓存数据链表进行存储和还原。
具体应用场景中,在按照预设的先后顺序,将前一个目标数据的标识及后一个目标数据的标识组合后作为目标键值对的value值的过程中,可以按照前一个目标数据的标识在前、后一个目标数据的标识在后的先后顺序,将前一个目标数据的标识及后一个目标数据的标识条理化的组合后作为目标键值对的value值。
具体应用场景中,在将前一个目标数据的标识及后一个目标数据的标识组合后作为目标键值对的value值的过程中,可以将0扩展后的前一个目标数据的标识及0扩展后的后一个目标数据的标识组合后作为目标键值对的value值;相应的,将缓存数据的标识作为目标键值对的key值的过程中,可以将0扩展后的缓存数据的标识作为目标键值对的key值;且0扩展包括在标识前添加0。以借助0扩展安全的存储数据标识及数据本身,相应的,在从键值对中还原出数据的相应信息时,需对键值对中的数据标识及数据本身进行反0扩展,以恢复出原数据,为便于理解,假设数据为1000,则0扩展后的数据为01000等,此时的目标键值对的示意可以如图4所示。
请参阅图5,图5为本申请实施例提供的一种缓存数据处理方法的第三流程图。
本申请实施例提供的一种缓存数据处理方法,可以包括以下步骤:
步骤S301:获取缓存数据的访问信息。
步骤S302:若缓存数据链表中只有缓存数据,则将预设的头链常数作为前一个目标数据;将预设的尾链常数作为后一个目标数据。
实际应用中,在基于目标位置信息确定前一个目标数据及后一个目标数据的过程中,若缓存数据链表中只有缓存数据,则可以将预设的头链常数作为前一个目标数据;将预设的尾链常数作为后一个目标数据。
步骤S303:若目标位置信息表征缓存数据位于缓存数据链表的头部,且缓存数据链表有其他数据,则将预设的头链常数作为前一个目标数据,将目标位置信息之后的数据作为后一个目标数据。
实际应用中,在基于目标位置信息确定前一个目标数据及后一个目标数据的过程中,若目标位置信息表征缓存数据位于缓存数据链表的头部,且缓存数据链表有其他数据,则可以将预设的头链常数作为前一个目标数据,将目标位置信息之后的数据作为后一个目标数据。
步骤S304:若目标位置信息表征缓存数据位于缓存数据链表的中间,则将目标位置信息之前的数据作为前一个目标数据,将目标位置信息之后的数据作为后一个目标数据。
实际应用中,在基于目标位置信息确定前一个目标数据及后一个目标数据的过程中,若目标位置信息表征缓存数据位于缓存数据链表的中间,则可以将目标位置信息之前的数据作为前一个目标数据,将目标位置信息之后的数据作为后一个目标数据。
步骤S305:若目标位置信息表征缓存数据位于缓存数据链表的尾部,则将目标位置信息之前的数据作为前一个目标数据,将预设的尾链常数作为后一个目标数据,缓存数据链表用于记录与缓存文件置换机制匹配的数据。
实际应用中,在基于目标位置信息确定前一个目标数据及后一个目标数据的过程中,若目标位置信息表征缓存数据位于缓存数据链表的尾部,则可以将目标位置信息之前的数据作为前一个目标数据,将预设的尾链常数作为后一个目标数据等。
步骤S306:基于前一个目标数据及后一个目标数据生成缓存数据的目标键值对并存储,以基于目标键值对对缓存数据进行缓存管理。
请参阅图6,图6为本申请实施例提供的一种缓存数据处理方法的第四流程图。
本申请实施例提供的一种缓存数据处理方法,可以包括以下步骤:
步骤S401:获取缓存数据的访问信息。
步骤S402:基于访问信息及缓存文件置换机制确定缓存数据在缓存数据链表中的前一个目标数据及后一个目标数据,缓存数据链表用于记录与缓存文件置换机制匹配的数据。
步骤S403:基于前一个目标数据及后一个目标数据生成缓存数据的目标键值对并存储,以基于目标键值对对缓存数据进行缓存管理。
步骤S404:记录缓存数据链表中的第一个数据及最后一个目标数据。
实际应用中,在基于前一个目标数据及后一个目标数据生成缓存数据的目标键值对并存储之后,为了快速确定缓存数据链表中的头部数据及尾部数据,还可以专门记录缓存数据链表中的第一个数据及最后一个目标数据。这样,只需从记录的头部数据开始对键值对进行查询,便可以快速还原出缓存数据链表。
具体应用场景中,在记录缓存数据链表中的第一个数据及最后一个目标数据的过程中,可以在第一预设存储空间中,比如在头链暂存器中记录缓存数据链表中的第一个数据;在第二预设存储空间中,比如在尾链暂存器记录缓存数据链表中的最后一个目标数据等,其过程可以如图7所示。
请参阅图8,图8为本申请实施例提供的一种缓存数据处理方法的第五流程图。
本申请实施例提供的一种缓存数据处理方法,可以包括以下步骤:
步骤S501:获取缓存数据的访问信息。
步骤S502:基于访问信息及缓存文件置换机制确定缓存数据在缓存数据链表中的前一个目标数据及后一个目标数据,缓存数据链表用于记录与缓存文件置换机制匹配的数据。
步骤S503:基于前一个目标数据及后一个目标数据生成缓存数据的目标键值对并存储,以基于目标键值对对缓存数据进行缓存管理。
步骤S504:更新缓存数据链表中已有数据的已有键值对。
实际应用中,在基于前一个目标数据及后一个目标数据生成缓存数据的目标键值对并存储之后,还可以更新缓存数据链表中位置发生变动的已有数据的已有键值对。
具体应用场景中,再更新缓存数据链表中已有数据的已有键值对的过程中,若存在缓存数据的已有键值对,也即缓存数据已经存在于缓存数据链表中,此时缓存数据的位置变动会影响变动前以变动后的目标数据的键值对信息,所以可以基于缓存数据的已有键值对的value值确定缓存数据在缓存数据链表中的前一个原始数据及后一个原始数据,并更新非预设的头链常数的前一个原始数据的已有键值对,比如基于后一个原始数据的标识更新前一个原始数据的已有键值对中的后一个目标数据的标识;和/或更新非预设的尾链常数的后一个原始数据的已有键值对,比如基于前一个原始数据的标识更新后一个原始数据的已有键值对中的前一个目标数据的标识;更新非头链常数的前一个目标数据的已有键值对,比如基于缓存数据的标识更新前一个目标数据的已有键值对中的后一个目标数据的标识;和/或更新非尾链常数的后一个目标数据的已有键值对,比如基于缓存数据的标识更新后一个目标数据的已有键值对中的前一个目标数据的标识;和/或删除移出缓存数据链表中的已有数据的已有键值对;
若不存在缓存数据的已有键值对,也即缓存数据原先不在缓存数据链表中,则可以更新非头链常数的前一个目标数据的已有键值对,比如基于缓存数据的标识更新前一个目标数据的已有键值对中的后一个目标数据的标识;和/或更新非尾链常数的后一个目标数据的已有键值对,比如基于缓存数据的标识更新后一个目标数据的已有键值对中的前一个目标数据的标识;和/或删除移出缓存数据链表中的已有数据的已有键值对。
具体应用场景中,在基于前一个目标数据及后一个目标数据生成缓存数据的目标键值对的过程中,若缓存数据已经存在于缓存数据链表中,也即缓存数据存在已有键值对,则可以直接基于前一个目标数据和/或后一个目标数据对已有键值对进行更新来得到目标键值对。
为便于理解本申请提供的缓存数据处理方法,现假设缓存数据链表中的数据存储变化情况如图9所示,缓存文件置换机制为LRU置换机制,其包括以下步骤:
初始:双向链表为空,头链表(head)与尾链表(tail)相连;
第一步:ID 1最近有被使用,添加ID 1到头链表,左方指到头链,右方指到尾链;
第二步:ID 2最近有被使用,添加ID 2到头链表,左方指到头链,右方指到ID 1;
第三步:ID 1最近有被使用,将ID 1移动至头链表,左方指到头链,右方指到ID 2;
第四步:ID 3最近有被使用,添加ID 3到头链表,左方指到头链,右方指到ID 1;
第五步:ID 4最近有被使用,将ID 2移出双向链表,并添加ID 4到头链表,左方指到头链,右方指到ID 3,置换移除ID 2;
第六步:ID 3最近有被使用,将ID 3移动至头链表,左方指到头链,右方指到ID 4;
第七步:ID 5最近有被使用,将ID 1移出双向链表,并添加ID 5到头链表,左方指到头链,右方指到ID 5,置换移除ID 1;
第八步:ID 4最近有被使用,将ID 4移动至头链表,左方指到头链,右方指到ID 3,置换移除ID 5;
则假设缓存数据链表记录表的储存空间(最大的ID个数)M=3,N=3 bit,头端常数= 1000 ,尾端常数=1001,则本申请中键值对的相应信息的变化过程可以如图10所示等。
请参阅图11,图11为本申请实施例提供的一种缓存数据处理装置的结构示意图。
本申请实施例提供的一种缓存数据处理装置,可以包括目标KVS(Key ValueSearch,键值查询)电路,目标KVS电路包括KVS电路流程控制状态机及连接的第一内存控制电路;
KVS电路流程控制状态机用于获取缓存数据的访问信息;基于访问信息及缓存文件置换机制确定缓存数据在缓存数据链表中的前一个目标数据及后一个目标数据,缓存数据链表用于记录与缓存文件置换机制匹配的数据;基于前一个目标数据及后一个目标数据生成缓存数据的目标键值对;
第一内存控制电路用于对目标键值对进行存储,以基于目标键值对对缓存数据进行缓存管理。
需要说明的是,本申请中的数据处理装置中的内存可以使用SRAM(StaticRandom-Access Memory,静态随机存取存储器)或DRAM(动态随机存取内存),需要说明的是,对于单笔每次读写,SRAM约比DRAM快10倍,但DRAM可达数个GB大小,相对于SRAM,大小大约数十MB,储存空间扩增千倍以上,所以可以根据实际需要来使用SRAM或DRAM。此外,由本申请方案中键值对的变化情况可知,不论哪一种情况,都只需少数个KVS的键值新增/更新/删除动作,而在硬体KVS电路,上述三种动作皆是在固定时间内一定可完成,在演算法的表示皆是O(1),也就是常数时间,相对于软体LRU链表,本申请硬体LRU置换电路十分快速;另外,相对于其他的硬体LRU置换电路,本申请除了速度可以匹配(使用SRAM时),当使用DRAM时,还可大幅增加储存空间。
具体的,为了便于理解,假设缓存文件置换机制为LRU置换机制,目标KVS电路为LRU KVS电路;LRU KVS电路的链表记录表的储存空间(最大的ID个数)为M,原ID键值位宽为N位元;设定LRU KVS电路的键(key)位宽为N+1,值(Value)位宽为2(N+1);设定头端常数为一不会使用到的cache/session ID,设定尾端常数为一不会使用到的cache/session ID,则KVS电路流程控制状态机对键值对的管理过程可以如下:
判断查询的ID=X(cache or session ID)是否被读取;
若ID=X(cache or session ID)被读取,则判断LRU KVS电路的链表记录表是否是空的;
若LRU KVS电路的链表记录表是空的,则新增到LRU KVS:Key=X,Value[2N+1:N+1]=头端常数,Vlaue[N:0]=尾端常数;头链暂存器=X,尾链暂存器=X;返回执行判断ID=X(cache or session ID)是否被读取的步骤;
若LRU KVS电路的链表记录表不是空的,则查询LRU KVS电路的链表记录表中是否存在此ID X;
若LRU KVS电路的链表记录表中存在此ID X,则判断ID X是否等于头链暂存器的内容值;
若ID X等于头链暂存器的内容值,则表示X已在头链,返回执行判断ID=X(cacheor session ID)是否被读取的步骤;
若ID X不等于头链暂存器的内容值,则更新Key=X之记录到头链,并更新前后链记录与链接内容值,具体的:1、以头链暂存器的内容值H为Key查询得到Value,假设H_V1=Value[2N+1:N+1],H_V2= Value[N:0];2、以尾链暂存器的内容值T为Key,查询得到Value,假设T_V1= Value[2N+1:N+1],T_V2= Value[N:0];3、以Key=X查询得到Value,假设X_V1=Value[2N+1:N+1],X_V2= Value[N:0];4、以步骤3的X_V1为Key值,查询得到Value,假设XV1_V1= Value[2N+1:N+1],XV1_V2= Value[N:0];5、以步骤3的X_V2为Key值查询得到Value,假设XV2_V1= Value[2N+1:N+1],XV2_V2= Value[N:0];6、对Key=X内容更新:Value[2N+1:N+1]=头端常数,Value[N:0]=H;执行7-1或7-2;8、更新头链暂存器=X;
其中,7-1:若ID X等于H_V2(表示ID X是链表中接在头链后的第二个链)则:
(7-1-1)对Key=H内容更新:Value[2N+1:N+1]=X,Value[N:0]=X_V2;
(7-1-2)当X_V2等于尾端常数(表示ID X是尾链)=>更新尾链暂存器=H;
(7-1-3)当X_V2不等于尾端常数(表示ID X非尾链)=>对Key=T内容更新:Value[2N+1:N+1]=X_V1,Value[N:0]=T_V2(链结不变);
其中,7-2若ID X不等于H_V2(表示ID X是链表中接在头链后的第三个链以后)则:
(7-2-1)对Key=H内容更新:Value[2N+1:N+1]=X,Value[N:0]=H_V2;
(7-2-2)当X_V2等于尾端常数(表示ID X是尾链);
(a)对Key=X_V1内容更新:Value[2N+1:N+1]= XV1_V1,Value[N:0]=尾端常数;
(b)更新尾链暂存器= X_V1;
(7-2-3)当X_V2等于T(尾链暂存器)(表示ID X是接在尾链的第二链)=>对Key=T内容更新:Value[2N+1:N+1]=X_V1,Value[N:0]=T_V2(链结不变);
(7-2-4)当X_V2等于不等于T(尾链暂存器)且X_V2不等于尾端常数(表示ID X是接在尾链的第三链以后);
(a)对Key=X_V1内容更新:Value[2N+1:N+1]= XV1_V1(链结不变),Value[N:0]=X_V2;
(b)对Key=X_V2内容更新:Value[2N+1:N+1]= XV1,Value[N:0]= XV2_V2(链结不变);
若LRU KVS电路的链表记录表中不存在此ID X,则判断LRU KVS电路的链表记录表的储存个数是否等于M;
若LRU KVS电路的链表记录表的储存个数等于M,则删除目前尾链并更新新旧尾链,新增Key=X之记录到头链并更新新旧头链;
若LRU KVS电路的链表记录表的储存个数不等于M,则新增Key=X之记录到头链并更新新旧头链;
其中,删除目前尾链并更新新旧尾链的过程中:以尾链暂存器的内容值T为Key查询得到Value,假设T_V1= Value[2N+1:N+1],T_V2= Value[N:0];以Key= T_V1查询得到Value,假设TV1_V1= Value[2N+1:N+1],TV1_V2= Value[N:0];对Key= T_V1内容更新:Value[2N+1:N+1]= TV1_V1(链结不变),Value[N:0]=尾端常数;删除KVS中的Key=T之记录;更新T(尾链暂存器)= T_V1;
新增Key=X之记录到头链并更新新旧头链的过程中:以尾链暂存器的内容值H为Key查询得到Value,假设H_V1= Value[2N+1:N+1],H_V2= Value[N:0];对Key= H内容更新:Value[2N+1:N+1]= X,Value[N:0]= H_V2(链结不变);新增Key=X之记录,Value[2N+1:N+1]= 头端常数,Value[N:0]= H;更新H(头链暂存器)= X。
本申请实施例提供的一种缓存数据处理装置,目标KVS电路可以包括:
与KVS电路流程控制状态机连接的0扩展器,用于对数据标识进行0扩展;
与KVS电路流程控制状态机连接的反0扩展器,用于去除0扩展后的数据标识中的0。
本申请实施例提供的一种缓存数据处理装置,目标KVS电路可以包括:
头链暂存器,用于记录缓存数据链表中的第一个数据;
尾链暂存器,用于记录缓存数据链表中的最后一个目标数据。
请参阅图12,本申请实施例提供的一种缓存数据处理装置,目标KVS电路可以延伸到分布式网路或软体应用层,也即可以配合用于低层硬体电路,如CPU(centralprocessing unit,中央处理器)/CACHE(高速缓冲存储器)以及网路或软体应用层的硬体加速置换机制,通常网路或软体应用层的资料库会使用软体资料库程式,所以图12是本申请一种进阶用法,将软体资料库也使用硬体KVS实做,并完美搭配本发明目标KVS电路,可以达到全路径皆以硬体实作的资料库存取速度提升:资料库KVS电路主要负责资料库数据的读写,而透过LRU KVS电路的配合,可以在资料库内存空间不足时,决定要删除资料库数据中的最不常用的那笔数据(ID)。本申请进阶方案应用具体网路介面,故也可以支持网路分散式系统硬体加速,也即还可以包括:
与0扩展器及反0扩展器连接的资料库KVS电路;
与资料库KVS电路连接的第二内存控制电路;
其中,资料库KVS电路用于通过第二内存控制电路对资料库内存进行数据管理。
本申请实施例提供的一种缓存数据处理装置,还可以包括:
与第二内存控制电路连接的资料库内存;
与第一内存控制电路连接的缓存数据链表记录内存。
本申请实施例提供的一种缓存数据处理装置,还可以包括:
与资料库KVS电路连接的网络传输介面,比如TCP(Transmission ControlProtocol,传输控制协议)/UDP(User Datagram Protocol,用户数据报协议)网络传输介面等。
请参阅图13,图13为本申请实施例提供的一种缓存数据处理系统的结构示意图。
本申请实施例提供的一种缓存数据处理系统,可以包括:
第一获取模块101,用于获取缓存数据的访问信息;
第一确定模块102,用于基于访问信息及缓存文件置换机制确定缓存数据在缓存数据链表中的前一个目标数据及后一个目标数据,缓存数据链表用于记录与缓存文件置换机制匹配的数据;
第一生成模块103,用于基于前一个目标数据及后一个目标数据生成缓存数据的目标键值对并存储,以基于目标键值对对缓存数据进行缓存管理。
本申请实施例提供的一种缓存数据处理系统,第一确定模块可以包括:
第一确定单元,用于基于访问信息及缓存文件置换机制,确定缓存数据在缓存数据链表中的目标位置信息;
第二确定单元,用于基于目标位置信息确定前一个目标数据及后一个目标数据。
本申请实施例提供的一种缓存数据处理系统,第一生成模块可以包括:
第一生成单元,用于按照预设的先后顺序,将前一个目标数据的标识及后一个目标数据的标识组合后作为目标键值对的value值;
第二生成单元,用于将缓存数据的标识作为目标键值对的key值。
本申请实施例提供的一种缓存数据处理系统,第一生成单元可以具体用于:按照前一个目标数据的标识在前、后一个目标数据的标识在后的先后顺序,将前一个目标数据的标识及后一个目标数据的标识组合后作为目标键值对的value值。
本申请实施例提供的一种缓存数据处理系统,第一生成单元可以具体用于:将0扩展后的前一个目标数据的标识及0扩展后的后一个目标数据的标识组合后作为目标键值对的value值;
第二生成单元可以具体用于:将0扩展后的缓存数据的标识作为目标键值对的key值;其中,0扩展包括在标识前添加0。
本申请实施例提供的一种缓存数据处理系统,第二确定单元可以具体用于:若缓存数据链表中只有缓存数据,则将预设的头链常数作为前一个目标数据;将预设的尾链常数作为后一个目标数据;若目标位置信息表征缓存数据位于缓存数据链表的头部,且缓存数据链表有其他数据,则将预设的头链常数作为前一个目标数据,将目标位置信息之后的数据作为后一个目标数据;若目标位置信息表征缓存数据位于缓存数据链表的中间,则将目标位置信息之前的数据作为前一个目标数据,将目标位置信息之后的数据作为后一个目标数据;若目标位置信息表征缓存数据位于缓存数据链表的尾部,则将目标位置信息之前的数据作为前一个目标数据,将预设的尾链常数作为后一个目标数据。
本申请实施例提供的一种缓存数据处理系统,还可以包括:
第一记录模块,用于第一生成模块基于前一个目标数据及后一个目标数据生成缓存数据的目标键值对并存储之后,记录缓存数据链表中的第一个数据及最后一个目标数据。
本申请实施例提供的一种缓存数据处理系统,第一记录模块可以包括:
第一记录单元,用于在第一预设存储空间中记录缓存数据链表中的第一个数据;
第二记录单元,用于在第二预设存储空间中记录缓存数据链表中的最后一个目标数据。
本申请实施例提供的一种缓存数据处理系统,还可以包括:
第一更新模块,用于第一生成模块基于前一个目标数据及后一个目标数据生成缓存数据的目标键值对并存储之后,更新缓存数据链表中已有数据的已有键值对。
本申请实施例提供的一种缓存数据处理系统,第一更新模块可以包括:
第一更新单元,用于若存在缓存数据的已有键值对,则基于缓存数据的已有键值对的value值确定缓存数据在缓存数据链表中的前一个原始数据及后一个原始数据,更新非预设的头链常数的前一个原始数据的已有键值对,和/或更新非预设的尾链常数的后一个原始数据的已有键值对;更新非头链常数的前一个目标数据的已有键值对,和/或更新非尾链常数的后一个目标数据的已有键值对;和/或删除移出缓存数据链表中的已有数据的已有键值对;若不存在缓存数据的已有键值对,则更新非头链常数的前一个目标数据的已有键值对,和/或更新非尾链常数的后一个目标数据的已有键值对;和/或删除移出缓存数据链表中的已有数据的已有键值对。
本申请实施例提供的一种缓存数据处理系统,第一生成模块可以包括:
第三生成单元,用于若缓存数据存在已有键值对;则基于前一个目标数据和/或后一个目标数据对已有键值对进行更新,得到目标键值对。
本申请还提供了一种缓存数据处理设备及计算机可读存储介质,其均具有本申请实施例提供的一种缓存数据处理方法具有的对应效果。请参阅图14,图14为本申请实施例提供的一种缓存数据处理设备的结构示意图。
本申请实施例提供的一种缓存数据处理设备,包括存储器201和处理器202,存储器201中存储有计算机程序,处理器202执行计算机程序时实现如下步骤:
获取缓存数据的访问信息;
基于访问信息及缓存文件置换机制确定缓存数据在缓存数据链表中的前一个目标数据及后一个目标数据,缓存数据链表用于记录与缓存文件置换机制匹配的数据;
基于前一个目标数据及后一个目标数据生成缓存数据的目标键值对并存储,以基于目标键值对对缓存数据进行缓存管理。
本申请实施例提供的一种缓存数据处理设备,包括存储器201和处理器202,存储器201中存储有计算机程序,处理器202执行计算机程序时实现如下步骤:基于访问信息及缓存文件置换机制,确定缓存数据在缓存数据链表中的目标位置信息;基于目标位置信息确定前一个目标数据及后一个目标数据。
本申请实施例提供的一种缓存数据处理设备,包括存储器201和处理器202,存储器201中存储有计算机程序,处理器202执行计算机程序时实现如下步骤:按照预设的先后顺序,将前一个目标数据的标识及后一个目标数据的标识组合后作为目标键值对的value值;将缓存数据的标识作为目标键值对的key值。
本申请实施例提供的一种缓存数据处理设备,包括存储器201和处理器202,存储器201中存储有计算机程序,处理器202执行计算机程序时实现如下步骤:按照前一个目标数据的标识在前、后一个目标数据的标识在后的先后顺序,将前一个目标数据的标识及后一个目标数据的标识组合后作为目标键值对的value值。
本申请实施例提供的一种缓存数据处理设备,包括存储器201和处理器202,存储器201中存储有计算机程序,处理器202执行计算机程序时实现如下步骤:将0扩展后的前一个目标数据的标识及0扩展后的后一个目标数据的标识组合后作为目标键值对的value值;将0扩展后的缓存数据的标识作为目标键值对的key值;其中,0扩展包括在标识前添加0。
本申请实施例提供的一种缓存数据处理设备,包括存储器201和处理器202,存储器201中存储有计算机程序,处理器202执行计算机程序时实现如下步骤:若缓存数据链表中只有缓存数据,则将预设的头链常数作为前一个目标数据;将预设的尾链常数作为后一个目标数据;若目标位置信息表征缓存数据位于缓存数据链表的头部,且缓存数据链表有其他数据,则将预设的头链常数作为前一个目标数据,将目标位置信息之后的数据作为后一个目标数据;若目标位置信息表征缓存数据位于缓存数据链表的中间,则将目标位置信息之前的数据作为前一个目标数据,将目标位置信息之后的数据作为后一个目标数据;若目标位置信息表征缓存数据位于缓存数据链表的尾部,则将目标位置信息之前的数据作为前一个目标数据,将预设的尾链常数作为后一个目标数据。
本申请实施例提供的一种缓存数据处理设备,包括存储器201和处理器202,存储器201中存储有计算机程序,处理器202执行计算机程序时实现如下步骤:基于前一个目标数据及后一个目标数据生成缓存数据的目标键值对并存储之后,记录缓存数据链表中的第一个数据及最后一个目标数据。
本申请实施例提供的一种缓存数据处理设备,包括存储器201和处理器202,存储器201中存储有计算机程序,处理器202执行计算机程序时实现如下步骤:在第一预设存储空间中记录缓存数据链表中的第一个数据;在第二预设存储空间中记录缓存数据链表中的最后一个目标数据。
本申请实施例提供的一种缓存数据处理设备,包括存储器201和处理器202,存储器201中存储有计算机程序,处理器202执行计算机程序时实现如下步骤:基于前一个目标数据及后一个目标数据生成缓存数据的目标键值对并存储之后,更新缓存数据链表中已有数据的已有键值对。
本申请实施例提供的一种缓存数据处理设备,包括存储器201和处理器202,存储器201中存储有计算机程序,处理器202执行计算机程序时实现如下步骤:若存在缓存数据的已有键值对,则基于缓存数据的已有键值对的value值确定缓存数据在缓存数据链表中的前一个原始数据及后一个原始数据,更新非预设的头链常数的前一个原始数据的已有键值对,和/或更新非预设的尾链常数的后一个原始数据的已有键值对;更新非头链常数的前一个目标数据的已有键值对,和/或更新非尾链常数的后一个目标数据的已有键值对;和/或删除移出缓存数据链表中的已有数据的已有键值对;若不存在缓存数据的已有键值对,则更新非头链常数的前一个目标数据的已有键值对,和/或更新非尾链常数的后一个目标数据的已有键值对;和/或删除移出缓存数据链表中的已有数据的已有键值对。
本申请实施例提供的一种缓存数据处理设备,包括存储器201和处理器202,存储器201中存储有计算机程序,处理器202执行计算机程序时实现如下步骤:若缓存数据存在已有键值对;则基于前一个目标数据和/或后一个目标数据对已有键值对进行更新,得到目标键值对。
请参阅图15,本申请实施例提供的另一种缓存数据处理设备中还可以包括:与处理器202连接的输入端口203,用于传输外界输入的命令至处理器202;与处理器202连接的显示单元204,用于显示处理器202的处理结果至外界;与处理器202连接的通信模块205,用于实现缓存数据处理设备与外界的通信。显示单元204可以为显示面板、激光扫描使显示器等;通信模块205所采用的通信方式包括但不局限于移动高清链接技术(HML)、通用串行总线(USB)、高清多媒体接口(HDMI)、无线连接:无线保真技术(WiFi)、蓝牙通信技术、低功耗蓝牙通信技术、基于IEEE802.11s的通信技术。
本申请实施例提供的一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,计算机程序被处理器执行时实现如下步骤:
获取缓存数据的访问信息;
基于访问信息及缓存文件置换机制确定缓存数据在缓存数据链表中的前一个目标数据及后一个目标数据,缓存数据链表用于记录与缓存文件置换机制匹配的数据;
基于前一个目标数据及后一个目标数据生成缓存数据的目标键值对并存储,以基于目标键值对对缓存数据进行缓存管理。
本申请实施例提供的一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,计算机程序被处理器执行时实现如下步骤:基于访问信息及缓存文件置换机制,确定缓存数据在缓存数据链表中的目标位置信息;基于目标位置信息确定前一个目标数据及后一个目标数据。
本申请实施例提供的一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,计算机程序被处理器执行时实现如下步骤:按照预设的先后顺序,将前一个目标数据的标识及后一个目标数据的标识组合后作为目标键值对的value值;将缓存数据的标识作为目标键值对的key值。
本申请实施例提供的一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,计算机程序被处理器执行时实现如下步骤:按照前一个目标数据的标识在前、后一个目标数据的标识在后的先后顺序,将前一个目标数据的标识及后一个目标数据的标识组合后作为目标键值对的value值。
本申请实施例提供的一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,计算机程序被处理器执行时实现如下步骤:将0扩展后的前一个目标数据的标识及0扩展后的后一个目标数据的标识组合后作为目标键值对的value值;将0扩展后的缓存数据的标识作为目标键值对的key值;其中,0扩展包括在标识前添加0。
本申请实施例提供的一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,计算机程序被处理器执行时实现如下步骤:若缓存数据链表中只有缓存数据,则将预设的头链常数作为前一个目标数据;将预设的尾链常数作为后一个目标数据;若目标位置信息表征缓存数据位于缓存数据链表的头部,且缓存数据链表有其他数据,则将预设的头链常数作为前一个目标数据,将目标位置信息之后的数据作为后一个目标数据;若目标位置信息表征缓存数据位于缓存数据链表的中间,则将目标位置信息之前的数据作为前一个目标数据,将目标位置信息之后的数据作为后一个目标数据;若目标位置信息表征缓存数据位于缓存数据链表的尾部,则将目标位置信息之前的数据作为前一个目标数据,将预设的尾链常数作为后一个目标数据。
本申请实施例提供的一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,计算机程序被处理器执行时实现如下步骤:基于前一个目标数据及后一个目标数据生成缓存数据的目标键值对并存储之后,记录缓存数据链表中的第一个数据及最后一个目标数据。
本申请实施例提供的一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,计算机程序被处理器执行时实现如下步骤:在第一预设存储空间中记录缓存数据链表中的第一个数据;在第二预设存储空间中记录缓存数据链表中的最后一个目标数据。
本申请实施例提供的一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,计算机程序被处理器执行时实现如下步骤:基于前一个目标数据及后一个目标数据生成缓存数据的目标键值对并存储之后,更新缓存数据链表中已有数据的已有键值对。
本申请实施例提供的一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,计算机程序被处理器执行时实现如下步骤:若存在缓存数据的已有键值对,则基于缓存数据的已有键值对的value值确定缓存数据在缓存数据链表中的前一个原始数据及后一个原始数据,更新非预设的头链常数的前一个原始数据的已有键值对,和/或更新非预设的尾链常数的后一个原始数据的已有键值对;更新非头链常数的前一个目标数据的已有键值对,和/或更新非尾链常数的后一个目标数据的已有键值对;和/或删除移出缓存数据链表中的已有数据的已有键值对;若不存在缓存数据的已有键值对,则更新非头链常数的前一个目标数据的已有键值对,和/或更新非尾链常数的后一个目标数据的已有键值对;和/或删除移出缓存数据链表中的已有数据的已有键值对。
本申请实施例提供的一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,计算机程序被处理器执行时实现如下步骤:若缓存数据存在已有键值对;则基于前一个目标数据和/或后一个目标数据对已有键值对进行更新,得到目标键值对。
本申请所涉及的计算机可读存储介质包括随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质。
本申请实施例提供的缓存数据处理系统、设备及计算机可读存储介质中相关部分的说明请参见本申请实施例提供的缓存数据处理方法中对应部分的详细说明,在此不再赘述。另外,本申请实施例提供的上述技术方案中与现有技术中对应技术方案实现原理一致的部分并未详细说明,以免过多赘述。
还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (20)
1.一种缓存数据处理方法,其特征在于,包括:
获取缓存数据的访问信息;
基于所述访问信息及缓存文件置换机制确定所述缓存数据在缓存数据链表中的前一个目标数据及后一个目标数据,所述缓存数据链表用于记录与所述缓存文件置换机制匹配的数据;
基于所述前一个目标数据及所述后一个目标数据生成所述缓存数据的目标键值对并存储,以基于所述目标键值对对所述缓存数据进行缓存管理。
2.根据权利要求1所述的方法,其特征在于,所述基于所述访问信息及缓存文件置换机制确定所述缓存数据在缓存数据链表中的前一个目标数据及后一个目标数据,包括:
基于所述访问信息及所述缓存文件置换机制,确定所述缓存数据在所述缓存数据链表中的目标位置信息;
基于所述目标位置信息确定所述前一个目标数据及所述后一个目标数据。
3.根据权利要求2所述的方法,其特征在于,所述基于所述前一个目标数据及所述后一个目标数据生成所述缓存数据的目标键值对,包括:
按照预设的先后顺序,将所述前一个目标数据的标识及所述后一个目标数据的标识组合后作为所述目标键值对的value值;
将所述缓存数据的标识作为所述目标键值对的key值。
4.根据权利要求3所述的方法,其特征在于,所述按照预设的先后顺序,将所述前一个目标数据的标识及所述后一个目标数据的标识组合后作为所述目标键值对的value值,包括:
按照所述前一个目标数据的标识在前、所述后一个目标数据的标识在后的先后顺序,将所述前一个目标数据的标识及所述后一个目标数据的标识组合后作为所述目标键值对的value值。
5.根据权利要求3所述的方法,其特征在于,所述将所述前一个目标数据的标识及所述后一个目标数据的标识组合后作为所述目标键值对的value值,包括:
将0扩展后的所述前一个目标数据的标识及0扩展后的所述后一个目标数据的标识组合后作为所述目标键值对的value值;
所述将所述缓存数据的标识作为所述目标键值对的key值,包括:
将0扩展后的所述缓存数据的标识作为所述目标键值对的key值;
其中,所述0扩展包括在标识前添加0。
6.根据权利要求2所述的方法,其特征在于,所述基于所述目标位置信息确定所述前一个目标数据及所述后一个目标数据,包括:
若所述缓存数据链表中只有所述缓存数据,则将预设的头链常数作为所述前一个目标数据;将预设的尾链常数作为所述后一个目标数据;
若所述目标位置信息表征所述缓存数据位于所述缓存数据链表的头部,且所述缓存数据链表有其他数据,则将预设的头链常数作为所述前一个目标数据,将所述目标位置信息之后的数据作为所述后一个目标数据;
若所述目标位置信息表征所述缓存数据位于所述缓存数据链表的中间,则将所述目标位置信息之前的数据作为所述前一个目标数据,将所述目标位置信息之后的数据作为所述后一个目标数据;
若所述目标位置信息表征所述缓存数据位于所述缓存数据链表的尾部,则将所述目标位置信息之前的数据作为所述前一个目标数据,将预设的尾链常数作为所述后一个目标数据。
7.根据权利要求1所述的方法,其特征在于,所述基于所述前一个目标数据及所述后一个目标数据生成所述缓存数据的目标键值对并存储之后,还包括:
记录所述缓存数据链表中的第一个数据及最后一个目标数据。
8.根据权利要求7所述的方法,其特征在于,所述记录所述缓存数据链表中的第一个数据及最后一个目标数据,包括:
在第一预设存储空间中记录所述缓存数据链表中的第一个数据;
在第二预设存储空间中记录所述缓存数据链表中的最后一个目标数据。
9.根据权利要求1所述的方法,其特征在于,所述基于所述前一个目标数据及所述后一个目标数据生成所述缓存数据的目标键值对并存储之后,还包括:
更新所述缓存数据链表中已有数据的已有键值对。
10.根据权利要求9所述的方法,其特征在于,所述更新所述缓存数据链表中已有数据的已有键值对,包括:
若存在所述缓存数据的所述已有键值对,则基于所述缓存数据的所述已有键值对的value值确定所述缓存数据在所述缓存数据链表中的前一个原始数据及后一个原始数据,更新非预设的头链常数的所述前一个原始数据的所述已有键值对,和/或更新非预设的尾链常数的所述后一个原始数据的所述已有键值对;更新非所述头链常数的所述前一个目标数据的所述已有键值对,和/或更新非所述尾链常数的所述后一个目标数据的所述已有键值对;和/或删除移出所述缓存数据链表中的所述已有数据的所述已有键值对;
若不存在所述缓存数据的所述已有键值对,则更新非所述头链常数的所述前一个目标数据的所述已有键值对,和/或更新非所述尾链常数的所述后一个目标数据的所述已有键值对;和/或删除移出所述缓存数据链表中的所述已有数据的所述已有键值对。
11.根据权利要求1所述的方法,其特征在于,所述基于所述前一个目标数据及所述后一个目标数据生成所述缓存数据的目标键值对,包括:
若所述缓存数据存在已有键值对;
则基于所述前一个目标数据和/或所述后一个目标数据对所述已有键值对进行更新,得到所述目标键值对。
12.一种缓存数据处理装置,其特征在于,包括目标KVS电路,所述目标KVS电路包括KVS电路流程控制状态机及连接的第一内存控制电路;
所述KVS电路流程控制状态机用于获取缓存数据的访问信息;基于所述访问信息及缓存文件置换机制确定所述缓存数据在缓存数据链表中的前一个目标数据及后一个目标数据,所述缓存数据链表用于记录与所述缓存文件置换机制匹配的数据;基于所述前一个目标数据及所述后一个目标数据生成所述缓存数据的目标键值对;
所述第一内存控制电路用于对所述目标键值对进行存储,以基于所述目标键值对对所述缓存数据进行缓存管理。
13.根据权利要求12所述的缓存数据处理装置,其特征在于,所述目标KVS电路包括:
与所述KVS电路流程控制状态机连接的0扩展器,用于对数据标识进行0扩展;
与所述KVS电路流程控制状态机连接的反0扩展器,用于去除0扩展后的数据标识中的0。
14.根据权利要求13所述的缓存数据处理装置,其特征在于,所述目标KVS电路包括:
头链暂存器,用于记录所述缓存数据链表中的第一个数据;
尾链暂存器,用于记录所述缓存数据链表中的最后一个目标数据。
15.根据权利要求14所述的缓存数据处理装置,其特征在于,还包括:
与所述0扩展器及所述反0扩展器连接的资料库KVS电路;
与所述资料库KVS电路连接的第二内存控制电路;
其中,所述资料库KVS电路用于通过所述第二内存控制电路对资料库内存进行数据管理。
16.根据权利要求15所述的缓存数据处理装置,其特征在于,还包括:
与所述第二内存控制电路连接的资料库内存;
与所述第一内存控制电路连接的缓存数据链表记录内存。
17.根据权利要求16所述的缓存数据处理装置,其特征在于,还包括:
与所述资料库KVS电路连接的网络传输介面。
18.一种缓存数据处理系统,其特征在于,包括:
第一获取模块,用于获取缓存数据的访问信息;
第一确定模块,用于基于所述访问信息及缓存文件置换机制确定所述缓存数据在缓存数据链表中的前一个目标数据及后一个目标数据,所述缓存数据链表用于记录与所述缓存文件置换机制匹配的数据;
第一生成模块,用于基于所述前一个目标数据及所述后一个目标数据生成所述缓存数据的目标键值对并存储,以基于所述目标键值对对所述缓存数据进行缓存管理。
19.一种缓存数据处理设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至11任一项所述缓存数据处理方法的步骤。
20.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至11任一项所述缓存数据处理方法的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211518389.XA CN115599711B (zh) | 2022-11-30 | 2022-11-30 | 缓存数据处理方法、系统、装置、设备及计算机存储介质 |
PCT/CN2023/094839 WO2024113694A1 (zh) | 2022-11-30 | 2023-05-17 | 缓存数据处理方法、系统、装置、设备及计算机存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211518389.XA CN115599711B (zh) | 2022-11-30 | 2022-11-30 | 缓存数据处理方法、系统、装置、设备及计算机存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115599711A true CN115599711A (zh) | 2023-01-13 |
CN115599711B CN115599711B (zh) | 2023-03-10 |
Family
ID=84852048
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211518389.XA Active CN115599711B (zh) | 2022-11-30 | 2022-11-30 | 缓存数据处理方法、系统、装置、设备及计算机存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN115599711B (zh) |
WO (1) | WO2024113694A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024113694A1 (zh) * | 2022-11-30 | 2024-06-06 | 苏州元脑智能科技有限公司 | 缓存数据处理方法、系统、装置、设备及计算机存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107590083A (zh) * | 2016-07-07 | 2018-01-16 | 北京四维新世纪信息技术有限公司 | 一种基于owga内存缓存的海量遥感瓦片数据快速发布方法 |
CN110908612A (zh) * | 2019-11-27 | 2020-03-24 | 腾讯科技(深圳)有限公司 | 缓存管理方法、装置、设备及存储介质 |
CN111400308A (zh) * | 2020-02-21 | 2020-07-10 | 中国平安财产保险股份有限公司 | 缓存数据的处理方法、电子装置及可读存储介质 |
CN111930740A (zh) * | 2020-06-28 | 2020-11-13 | 腾讯科技(成都)有限公司 | 一种游戏数据的处理方法、装置、服务器及存储介质 |
WO2022126984A1 (zh) * | 2020-12-15 | 2022-06-23 | 平安科技(深圳)有限公司 | 缓存数据的检测方法、装置、计算机设备和存储介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115168416A (zh) * | 2022-06-27 | 2022-10-11 | 度小满科技(北京)有限公司 | 数据缓存方法、装置、存储介质及电子装置 |
CN115599711B (zh) * | 2022-11-30 | 2023-03-10 | 苏州浪潮智能科技有限公司 | 缓存数据处理方法、系统、装置、设备及计算机存储介质 |
-
2022
- 2022-11-30 CN CN202211518389.XA patent/CN115599711B/zh active Active
-
2023
- 2023-05-17 WO PCT/CN2023/094839 patent/WO2024113694A1/zh unknown
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107590083A (zh) * | 2016-07-07 | 2018-01-16 | 北京四维新世纪信息技术有限公司 | 一种基于owga内存缓存的海量遥感瓦片数据快速发布方法 |
CN110908612A (zh) * | 2019-11-27 | 2020-03-24 | 腾讯科技(深圳)有限公司 | 缓存管理方法、装置、设备及存储介质 |
CN111400308A (zh) * | 2020-02-21 | 2020-07-10 | 中国平安财产保险股份有限公司 | 缓存数据的处理方法、电子装置及可读存储介质 |
CN111930740A (zh) * | 2020-06-28 | 2020-11-13 | 腾讯科技(成都)有限公司 | 一种游戏数据的处理方法、装置、服务器及存储介质 |
WO2022126984A1 (zh) * | 2020-12-15 | 2022-06-23 | 平安科技(深圳)有限公司 | 缓存数据的检测方法、装置、计算机设备和存储介质 |
Non-Patent Citations (1)
Title |
---|
祖文强等: "可配置及历史信息感知的多级缓存策略", 《计算机研究与发展》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024113694A1 (zh) * | 2022-11-30 | 2024-06-06 | 苏州元脑智能科技有限公司 | 缓存数据处理方法、系统、装置、设备及计算机存储介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2024113694A1 (zh) | 2024-06-06 |
CN115599711B (zh) | 2023-03-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108810041B (zh) | 一种分布式缓存系统的数据写入及扩容方法、装置 | |
WO2021088466A1 (zh) | 提高网络芯片报文存储效率的方法、设备及存储介质 | |
US20100228914A1 (en) | Data caching system and method for implementing large capacity cache | |
US20100146213A1 (en) | Data Cache Processing Method, System And Data Cache Apparatus | |
US8225029B2 (en) | Data storage processing method, data searching method and devices thereof | |
CN111352931A (zh) | 一种哈希冲突的处理方法、装置及计算机可读存储介质 | |
EP3316150B1 (en) | Method and apparatus for file compaction in key-value storage system | |
CN111506604B (zh) | 访问数据的方法、装置和计算机程序产品 | |
CN115599711B (zh) | 缓存数据处理方法、系统、装置、设备及计算机存储介质 | |
CN108377394A (zh) | 视频编码器的图像数据读取方法、计算机装置及计算机可读存储介质 | |
CN113867627A (zh) | 一种存储系统性能优化方法及系统 | |
CN111625515A (zh) | 一种聚合小文件的操作请求的处理方法及装置 | |
CN114844846A (zh) | 一种基于可编程交换机的多级缓存分布式键值存储系统 | |
CN111831691B (zh) | 一种数据读写方法及装置、电子设备、存储介质 | |
CN107463333B (zh) | 网络硬盘空间的回收方法、装置和系统 | |
CN114281712A (zh) | 查表方法、装置、fpga及可读存储介质 | |
CN110618790A (zh) | 基于重复数据删除的雾存储数据去冗余方法 | |
CN112052193B (zh) | 一种垃圾回收方法、装置、可读存储介质及电子设备 | |
CN112995257B (zh) | 基于云存储架构的缓存扩容方法、装置以及存储介质 | |
JP2018511131A (ja) | オンライン媒体のための階層的なコストベースのキャッシング | |
CN103491124A (zh) | 一种对彩信数据进行处理的方法及分布式缓存系统 | |
CN113704190A (zh) | 一种数据写入方法以及装置 | |
CN109828720B (zh) | 数据存储方法、装置、服务器和存储介质 | |
CN102591792B (zh) | 一种内存数据的存储方法 | |
CN113626382A (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 |