CN117591558A - 数据缓存方法、系统、装置及设备 - Google Patents
数据缓存方法、系统、装置及设备 Download PDFInfo
- Publication number
- CN117591558A CN117591558A CN202311562513.7A CN202311562513A CN117591558A CN 117591558 A CN117591558 A CN 117591558A CN 202311562513 A CN202311562513 A CN 202311562513A CN 117591558 A CN117591558 A CN 117591558A
- Authority
- CN
- China
- Prior art keywords
- sub
- key value
- target
- cache
- data corresponding
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 41
- 230000004044 response Effects 0.000 claims abstract description 19
- 238000012544 monitoring process Methods 0.000 claims description 29
- 238000004590 computer program Methods 0.000 claims description 8
- 238000004891 communication Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000003044 adaptive effect Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification 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
-
- 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)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种数据缓存方法、系统、装置及设备,涉及数据缓存技术领域,可解决响应速度低下,数据获取与缓存效率低的技术问题。其中方法包括:接收对目标键值的数据访问请求;响应于数据访问请求,将目标键值散列为至少一个子键值,确定子键值对应存放的缓存应用节点,其中,子键值与目标键值不同,子键值对应的数据与目标键值对应的数据相同,每个缓存应用节点存放子键值的数量偏差小于预设值;为数据访问请求分配子键值,判断子键值对应存放的缓存应用节点中是否存在子键值对应的数据,若是,读取子键值对应的数据,若否,从目标键值对应存放的目标缓存应用节点中读取目标键值对应的数据。
Description
技术领域
本发明涉及数据缓存技术领域,尤其涉及到一种数据缓存方法、系统、装置及设备。
背景技术
当前随着互联网技术及应用的快速发展,为了提升应用系统的响应速度,缓存技术已经被广泛的应用。现有缓存集群有多个缓存应用节点,存放各个key(键值或索引)。当业务应用节点访问缓存应用节点,根据key读取不到对应的数据时,业务应用节点会读取数据库,获取key对应的数据,并将这个数据存放到这个缓存应用节点,当业务应用节点想再次获取同一key对应的数据时,直接访问这个缓存应用节点,即可获取得到对应的数据。
但是,多个业务应用节点访问同一个key时,会集中访问同一个缓存应用节点,当访问数量超过单个缓存应用节点的服务能力时,会产生无法访问缓存的情况,此时缓存集群的服务能力受限于单个缓存应用节点的服务能力,即使增加缓存应用节点数量,也不能增加缓存集群的整体服务能力,导致响应速度低下,数据获取与缓存效率低。
发明内容
有鉴于此,本发明提供了一种数据缓存方法、系统、装置及设备,可解决响应速度低下,数据获取与缓存效率低的技术问题。
根据本发明的第一个方面,提供了一种数据缓存方法,所述方法包括:
接收对目标键值的数据访问请求;
响应于所述数据访问请求,将所述目标键值散列为至少一个子键值,确定所述子键值对应存放的缓存应用节点,其中,所述子键值与所述目标键值不同,所述子键值对应的数据与所述目标键值对应的数据相同,每个所述缓存应用节点存放所述子键值的数量偏差小于预设值;
为所述数据访问请求分配所述子键值,判断所述子键值对应存放的缓存应用节点中是否存在所述子键值对应的数据,若是,读取所述子键值对应的数据,若否,从所述目标键值对应存放的目标缓存应用节点中读取所述目标键值对应的数据。
优选地,所述方法还包括:
若所述目标缓存应用节点中不存在所述目标键值对应的数据,则从数据库中读取所述目标键值对应的数据。
优选地,所述方法还包括:
将从数据库中读取的所述目标键值对应的数据写入所述目标缓存应用节点。
优选地,所述方法还包括:
若所述子键值对应存放的缓存应用节点中不存在所述子键值对应的数据,则将所述目标键值对应的数据写入所述子键值对应存放的缓存应用节点。
优选地,所述将所述目标键值散列为至少一个子键值,包括:
读取缓存监控指标,根据所述缓存监控指标确定将所述目标键值散列为子键值的数量。
根据本发明的第二个方面,提供了一种数据缓存系统,所述系统包括:
接收模块,用于接收对目标键值的数据访问请求;
缓存集群监控模块,用于监控缓存集群的缓存监控指标;
散列模块分别与所述接收模块以及所述缓存集群监控模块连接,用于响应于所述数据访问请求,读取缓存监控指标,根据所述缓存监控指标确定将所述目标键值散列为子键值的数量,确定所述子键值对应存放的缓存应用节点,其中,每个所述缓存应用节点存放所述子键值的数量偏差小于预设值;
二级缓存模块包括缓存读取二级单元与缓存写入二级单元,所述缓存读取二级单元与所述散列模块连接,用于为所述数据访问请求分配所述子键值,判断所述子键值对应存放的缓存应用节点中是否存在所述子键值对应的数据,若所述子键值对应存放的缓存应用节点中存在所述子键值对应的数据,读取所述子键值对应的数据,若所述子键值对应存放的缓存应用节点中不存在所述子键值对应的数据,从所述目标键值对应存放的目标缓存应用节点中读取所述目标键值对应的数据,若所述目标缓存应用节点中不存在所述目标键值对应的数据,则从数据库中读取所述目标键值对应的数据;
所述缓存写入二级单元与所述缓存读取二级单元连接,用于若所述目标缓存应用节点中不存在所述目标键值对应的数据,则将从数据库中读取的所述目标键值对应的数据写入所述目标缓存应用节点,若所述目标缓存应用节点中存在所述目标键值对应的数据,所述子键值对应存放的缓存应用节点中存在所述子键值对应的数据,则将所述目标键值对应的数据写入所述子键值对应存放的缓存应用节点。
根据本发明的第三个方面,提供了一种数据缓存装置,所述装置包括:
接收模块,用于接收对目标键值的数据访问请求;
散列模块,用于响应于所述数据访问请求,将所述目标键值散列为至少一个子键值,确定所述子键值对应存放的缓存应用节点,其中,所述子键值与所述目标键值不同,所述子键值对应的数据与所述目标键值对应的数据相同,每个所述缓存应用节点存放所述子键值的数量偏差小于预设值;
第一读取模块,用于为所述数据访问请求分配所述子键值,判断所述子键值对应存放的缓存应用节点中是否存在所述子键值对应的数据,若是,读取所述子键值对应的数据,若否,从所述目标键值对应存放的目标缓存应用节点中读取所述目标键值对应的数据。
优选地,所述装置还包括:
第二读取模块,用于若所述目标缓存应用节点中不存在所述目标键值对应的数据,则从数据库中读取所述目标键值对应的数据。
依据本申请第四个方面,提供了一种存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述数据缓存方法。
依据本申请第五个方面,提供了一种计算机设备,包括存储介质、处理器及存储在存储介质上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述数据缓存方法。
借由上述技术方案,本发明提供的一种数据缓存方法、系统、装置及设备,本发明可首先接收对目标键值的数据访问请求;然后响应于数据访问请求,将目标键值散列为至少一个子键值,确定子键值对应存放的缓存应用节点,其中,子键值与目标键值不同,子键值对应的数据与目标键值对应的数据相同,每个缓存应用节点存放子键值的数量偏差小于预设值;最后为数据访问请求分配子键值,判断子键值对应存放的缓存应用节点中是否存在子键值对应的数据,若是,读取子键值对应的数据,若否,从目标键值对应存放的目标缓存应用节点中读取目标键值对应的数据。现有技术中,大量数据访问请求访问同一个目标键值时,会集中访问同一个目标缓存应用节点,而单个缓存应用节点的服务能力有限。通过本发明的技术方案,将目标键值散列为至少一个子键值,均匀的将这些子键值存放在缓存集群的多个缓存应用节点中,这些子键值与目标键值不同,但是子键值对应的数据与目标键值对应的数据相同,然后就可以为数据访问请求分配子键值,由于子键值已经均匀的存放在多个缓存应用节点中,因此,就将数据访问请求均匀分配到多个缓存应用节点中去处理,此时缓存集群的服务能力就是各个缓存应用节点的总和,从而解决了缓存集群的服务能力受限于单个缓存应用节点的服务能力导致的响应速度低下,数据获取与缓存效率低的问题。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本发明的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本地申请的不当限定。在附图中:
图1示出了本发明实施例提供的一种数据缓存方法的流程示意图;
图2示出了本发明实施例提供的另一种数据缓存方法的流程示意图;
图3示出了本发明实施例提供的一种数据缓存装置的结构示意图;
图4示出了本发明实施例提供的另一种数据缓存装置的结构示意图;
图5示出了本发明实施例提供的一种数据缓存系统的结构示意图。
具体实施方式
下文将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互结合。
本实施例提供了一种数据缓存方法,如图1所示,该方法包括:
101、接收对目标键值的数据访问请求。
其中,数据访问请求是同一时间对同一目标键值大量的数据读取请求,目标键值是数据访问请求访问的,为了读取目标键值对应的数据。
102、响应于所述数据访问请求,将所述目标键值散列为至少一个子键值,确定所述子键值对应存放的缓存应用节点,其中,所述子键值与所述目标键值不同,所述子键值对应的数据与所述目标键值对应的数据相同,每个所述缓存应用节点存放所述子键值的数量偏差小于预设值。
其中,缓存应用节点:运行缓存应用程序的节点,提供缓存数据的存放与读取服务,当存放缓存数据时,会根据键值把数据存放在内存里,当读取缓存数据时,根据键值快速查找数据,提供高速读取服务。
需要说明的是,散列指的是目标键值与子键值不同,但是子键值对应的数据与目标键值对应的数据相同,而目标键值与子键值不同指的是目标键值标识与子键值标识不同,优选的,作为一种实施方式,为了记录目标键值所散列的子键值存放于哪些缓存应用节点,可以预设目标键值标识与子键值标识的关系,例如,目标键值标识是key_A0,那么子键值标识可为key_A1、key_A2、key_A3、key_A4......。
对于本实施例,缓存集群包括目标键值存放的目标缓存应用节点、子键值存放的缓存应用节点,一个目标键值只对应存放于一个目标缓存应用节点中,以缓存集群中只存在一个目标键值为例,这一个目标键值散列为多个子键值,这些子键值均匀存放于缓存应用节点中,均匀的标准可为:每个缓存应用节点存放子键值的数量偏差小于预设值,例如预设值是2,那么可以有的缓存应用节点存放2个子键值,有的缓存应用节点存放3个子键值。从而均匀的将数据访问请求分担到各个缓存应用节点,而非单个缓存应用节点,提高了缓存集群读取同一个目标键值对应的数据的整体服务能力,提高了响应速度,提高了数据读取的效率。
103、为所述数据访问请求分配所述子键值,判断所述子键值对应存放的缓存应用节点中是否存在所述子键值对应的数据,若是,读取所述子键值对应的数据,若否,从所述目标键值对应存放的目标缓存应用节点中读取所述目标键值对应的数据。
例如,存放子键值的缓存应用节点有10个,每个缓存应用节点里存放2个同一个目标键值散列的子键值,数据访问请求有40个,那么,为两个数据访问请求分配一个子键值,即四个数据访问请求分配到一个缓存应用节点,一个缓存应用节点里的一个子键值分配两个数据访问请求,利用一个子键值为其中一个数据访问请求读取数据,另一个数据访问请求排队。
对于本实施例,作为一种实施方式,将读取方式分为两级读取,即首先从子键值存放的缓存应用节点中读取,如果不存在字键值对应的数据,不会直接到数据库中读取,而是从目标键值存放的目标缓存应用节点中读取,通过两级读取,减少了大量数据访问请求对数据库造成的访问压力。
另外,如果从目标键值存放的目标缓存应用节点中读取,目标缓存应用节点中存在目标键值对应的数据,那么除了读取成功以外,还会将目标键值对应的数据复制,写入到这个子键值对应的缓存应用节点中,这样,排队的数据访问请求可以直接从这个缓存应用节点中读取到子键值对应的数据,无需再到目标缓存应用节点中读取,从而提高了数据读取效率。
本发明提供的一种数据缓存方法、系统、装置及设备,本发明可首先接收对目标键值的数据访问请求;然后响应于数据访问请求,将目标键值散列为至少一个子键值,确定子键值对应存放的缓存应用节点,其中,子键值与目标键值不同,子键值对应的数据与目标键值对应的数据相同,每个缓存应用节点存放子键值的数量偏差小于预设值;最后为数据访问请求分配子键值,判断子键值对应存放的缓存应用节点中是否存在子键值对应的数据,若是,读取子键值对应的数据,若否,从目标键值对应存放的目标缓存应用节点中读取目标键值对应的数据。现有技术中,大量数据访问请求访问同一个目标键值时,会集中访问同一个目标缓存应用节点,而单个缓存应用节点的服务能力有限。通过本发明的技术方案,将目标键值散列为至少一个子键值,均匀的将这些子键值存放在缓存集群的多个缓存应用节点中,这些子键值与目标键值不同,但是子键值对应的数据与目标键值对应的数据相同,然后就可以为数据访问请求分配子键值,由于子键值已经均匀的存放在多个缓存应用节点中,因此,就将数据访问请求均匀分配到多个缓存应用节点中去处理,此时缓存集群的服务能力就是各个缓存应用节点的总和,从而解决了缓存集群的服务能力受限于单个缓存应用节点的服务能力导致的响应速度低下,数据获取与缓存效率低的问题。
进一步的,作为上述实施例具体实施方式的细化和扩展,为了完整说明本实施例中的具体实施过程,提供了另一种数据缓存方法,如图2所示,该方法包括:
201、接收对目标键值的数据访问请求。
对于本实施例,具体实施方式与实施例步骤101相同,在此不再赘述。
202、响应于所述数据访问请求,读取缓存监控指标,根据所述缓存监控指标确定将所述目标键值散列为子键值的数量,确定所述子键值对应存放的缓存应用节点,其中,所述子键值与所述目标键值不同,所述子键值对应的数据与所述目标键值对应的数据相同,每个所述缓存应用节点存放所述子键值的数量偏差小于预设值。
对于本实施例,作为一种实施方式,对目标键值的数据访问请求可以是第一次,即未对目标键值散列过;可以是非第一次,即对目标键值散列过,无论是否对目标键值散列过,都根据缓存监控指标确定将目标键值散列为子键值的数量,其中,缓存监控指标反映着目前缓存集群的剩余服务能力,包括剩余可用空间(键值总数、键值过期数)、总等待阻塞连接数(即目前排队未处理的请求数)等,具体确定时,可获取缓存监控指标值与散列系数之间的预设对应关系,确定当前的缓存监控指标值对应的散列系数,然后使用散列系数乘以缓存应用节点的数量,即为这个目标键值散列为子键值的数量,其中,缓存应用节点是用于存放这个目标键值散列的子键值(即目标键值对应的目标缓存应用节点中不存放子键值),散列系数是每个缓存应用节点所存放的子键值的平均数量。
本实施例能够无论第几次对同一目标键值进行访问下,都自动根据缓存集群的实际运行情况(缓存监控指标)自适应、自学习的计算散列系数,使得目标键值散列为子键值的数量是根据缓存集群的实际运行情况相适应的,因此保证了缓存集群的高效存取。
203、为所述数据访问请求分配所述子键值,判断所述子键值对应存放的缓存应用节点中是否存在所述子键值对应的数据,若是,读取所述子键值对应的数据,若否,从所述目标键值对应存放的目标缓存应用节点中读取所述目标键值对应的数据。
对于本实施例,具体实施方式与实施例步骤103相同,在此不再赘述。
204、若所述目标缓存应用节点中不存在所述目标键值对应的数据,则从数据库中读取所述目标键值对应的数据,将从数据库中读取的所述目标键值对应的数据写入所述目标缓存应用节点。
205、若所述子键值对应存放的缓存应用节点中不存在所述子键值对应的数据,则将所述目标键值对应的数据写入所述子键值对应存放的缓存应用节点。
对于实施例步骤203-205,能从数据库中读取数据的只有目标键值,目标键值散列的子键值无法从数据库中读取数据,从而减少了大量数据访问请求对数据库造成的访问压力,相应的,数据库中的数据首先写入到目标缓存应用节点,然后由目标缓存节点中,目标键值对应的数据写入到子键值对应存放的缓存应用节点,从而实现了数据从数据库缓存到了目标缓存应用节点,以及子键值对应存放的缓存应用节点。
本发明提供的一种数据缓存方法、系统、装置及设备,本发明可首先接收对目标键值的数据访问请求;然后响应于数据访问请求,将目标键值散列为至少一个子键值,确定子键值对应存放的缓存应用节点,其中,子键值与目标键值不同,子键值对应的数据与目标键值对应的数据相同,每个缓存应用节点存放子键值的数量偏差小于预设值;最后为数据访问请求分配子键值,判断子键值对应存放的缓存应用节点中是否存在子键值对应的数据,若是,读取子键值对应的数据,若否,从目标键值对应存放的目标缓存应用节点中读取目标键值对应的数据。现有技术中,大量数据访问请求访问同一个目标键值时,会集中访问同一个目标缓存应用节点,而单个缓存应用节点的服务能力有限。通过本发明的技术方案,将目标键值散列为至少一个子键值,均匀的将这些子键值存放在缓存集群的多个缓存应用节点中,这些子键值与目标键值不同,但是子键值对应的数据与目标键值对应的数据相同,然后就可以为数据访问请求分配子键值,由于子键值已经均匀的存放在多个缓存应用节点中,因此,就将数据访问请求均匀分配到多个缓存应用节点中去处理,此时缓存集群的服务能力就是各个缓存应用节点的总和,从而解决了缓存集群的服务能力受限于单个缓存应用节点的服务能力导致的响应速度低下,数据获取与缓存效率低的问题。
进一步的,本发明实施例提供了一种数据缓存系统,如图5所示,该系统包括:
接收模块,用于接收对目标键值的数据访问请求;
缓存集群监控模块,用于监控缓存集群的缓存监控指标;
散列模块分别与所述接收模块以及所述缓存集群监控模块连接,用于响应于所述数据访问请求,读取缓存监控指标,根据所述缓存监控指标确定将所述目标键值散列为子键值的数量,确定所述子键值对应存放的缓存应用节点,其中,每个所述缓存应用节点存放所述子键值的数量偏差小于预设值;
二级缓存模块包括缓存读取二级单元与缓存写入二级单元,所述缓存读取二级单元与所述散列模块连接,用于为所述数据访问请求分配所述子键值,判断所述子键值对应存放的缓存应用节点中是否存在所述子键值对应的数据,若所述子键值对应存放的缓存应用节点中存在所述子键值对应的数据,读取所述子键值对应的数据,若所述子键值对应存放的缓存应用节点中不存在所述子键值对应的数据,从所述目标键值对应存放的目标缓存应用节点中读取所述目标键值对应的数据,若所述目标缓存应用节点中不存在所述目标键值对应的数据,则从数据库中读取所述目标键值对应的数据;
所述缓存写入二级单元与所述缓存读取二级单元连接,用于若所述目标缓存应用节点中不存在所述目标键值对应的数据,则将从数据库中读取的所述目标键值对应的数据写入所述目标缓存应用节点,若所述目标缓存应用节点中存在所述目标键值对应的数据,所述子键值对应存放的缓存应用节点中存在所述子键值对应的数据,则将所述目标键值对应的数据写入所述子键值对应存放的缓存应用节点。
进一步的,作为图1和图2所示方法的具体实现,本发明实施例提供了一种数据缓存装置,如图3所示,该装置包括:接收模块31、散列模块32、第一读取模块33;
接收模块31,用于接收对目标键值的数据访问请求;
散列模块32,用于响应于所述数据访问请求,将所述目标键值散列为至少一个子键值,确定所述子键值对应存放的缓存应用节点,其中,所述子键值与所述目标键值不同,所述子键值对应的数据与所述目标键值对应的数据相同,每个所述缓存应用节点存放所述子键值的数量偏差小于预设值;
第一读取模块33,用于为所述数据访问请求分配所述子键值,判断所述子键值对应存放的缓存应用节点中是否存在所述子键值对应的数据,若是,读取所述子键值对应的数据,若否,从所述目标键值对应存放的目标缓存应用节点中读取所述目标键值对应的数据。
在具体的应用场景中,如图4所示,一种数据缓存装置,该装置还包括:第二读取模块34,具体可用于若所述目标缓存应用节点中不存在所述目标键值对应的数据,则从数据库中读取所述目标键值对应的数据。
在具体的应用场景中,如图4所示,一种数据缓存装置,该装置还包括:第一写入模块35,具体还可用于将从数据库中读取的所述目标键值对应的数据写入所述目标缓存应用节点。
在具体的应用场景中,如图4所示,一种数据缓存装置,该装置还包括:第二写入模块36,具体可用于若所述子键值对应存放的缓存应用节点中不存在所述子键值对应的数据,则将所述目标键值对应的数据写入所述子键值对应存放的缓存应用节点。
相应的,为了将所述目标键值散列为至少一个子键值,散列模块32,具体还可用于读取缓存监控指标,根据所述缓存监控指标确定将所述目标键值散列为子键值的数量。
需要说明的是,本实施例提供的一种数据缓存装置所涉及各功能单元的其他相应描述,可以参考图1至图2的对应描述,在此不再赘述。
基于上述如图1至图2所示方法,相应的,本实施例还提供了一种存储介质,存储介质具体可为易失性或非易失性,其上存储有计算机程序,该程序被处理器执行时实现上述如图1至图2所示的数据缓存方法。
基于这样的理解,本发明的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施场景的方法。
基于上述如图1至图2所示的方法和图3、图4所示的虚拟装置实施例,为了实现上述目的,本实施例还提供了一种计算机设备,该计算机设备包括存储介质和处理器;存储介质,用于存储计算机程序;处理器,用于执行计算机程序以实现上述如图1至图2所示的数据缓存方法。
可选的,该计算机设备还可以包括用户接口、网络接口、摄像头、射频(RadioFrequency,RF)电路,传感器、音频电路、WI-FI模块等等。用户接口可以包括显示屏(Display)、输入单元比如键盘(Keyboard)等,可选用户接口还可以包括USB接口、读卡器接口等。网络接口可选的可以包括标准的有线接口、无线接口(如WI-FI接口)等。
本领域技术人员可以理解,本实施例提供的一种计算机设备结构并不构成对该实体设备的限定,可以包括更多或更少的部件,或者组合某些部件,或者不同的部件布置。
存储介质中还可以包括操作系统、网络通信模块。操作系统是管理上述计算机设备硬件和软件资源的程序,支持信息处理程序以及其它软件和/或程序的运行。网络通信模块用于实存储介质内部各组件之间的通信,以及与信息处理实体设备中其它硬件和软件之间通信。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可以借助软件加必要的通用硬件平台的方式来实现,也可以通过硬件实现。
本发明提供的一种数据缓存方法、系统、装置及设备,本发明可首先接收对目标键值的数据访问请求;然后响应于数据访问请求,将目标键值散列为至少一个子键值,确定子键值对应存放的缓存应用节点,其中,子键值与目标键值不同,子键值对应的数据与目标键值对应的数据相同,每个缓存应用节点存放子键值的数量偏差小于预设值;最后为数据访问请求分配子键值,判断子键值对应存放的缓存应用节点中是否存在子键值对应的数据,若是,读取子键值对应的数据,若否,从目标键值对应存放的目标缓存应用节点中读取目标键值对应的数据。现有技术中,大量数据访问请求访问同一个目标键值时,会集中访问同一个目标缓存应用节点,而单个缓存应用节点的服务能力有限。通过本发明的技术方案,将目标键值散列为至少一个子键值,均匀的将这些子键值存放在缓存集群的多个缓存应用节点中,这些子键值与目标键值不同,但是子键值对应的数据与目标键值对应的数据相同,然后就可以为数据访问请求分配子键值,由于子键值已经均匀的存放在多个缓存应用节点中,因此,就将数据访问请求均匀分配到多个缓存应用节点中去处理,此时缓存集群的服务能力就是各个缓存应用节点的总和,从而解决了缓存集群的服务能力受限于单个缓存应用节点的服务能力导致的响应速度低下,数据获取与缓存效率低的问题。
本领域技术人员可以理解附图只是一个优选实施场景的示意图,附图中的模块或流程并不一定是实施本发明所必须的。本领域技术人员可以理解实施场景中的装置中的模块可以按照实施场景描述进行分布于实施场景的装置中,也可以进行相应变化位于不同于本实施场景的一个或多个装置中。上述实施场景的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
上述本发明序号仅仅为了描述,不代表实施场景的优劣。以上公开的仅为本发明的几个具体实施场景,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。
Claims (10)
1.一种数据缓存方法,其特征在于,所述方法包括:
接收对目标键值的数据访问请求;
响应于所述数据访问请求,将所述目标键值散列为至少一个子键值,确定所述子键值对应存放的缓存应用节点,其中,所述子键值与所述目标键值不同,所述子键值对应的数据与所述目标键值对应的数据相同,每个所述缓存应用节点存放所述子键值的数量偏差小于预设值;
为所述数据访问请求分配所述子键值,判断所述子键值对应存放的缓存应用节点中是否存在所述子键值对应的数据,若是,读取所述子键值对应的数据,若否,从所述目标键值对应存放的目标缓存应用节点中读取所述目标键值对应的数据。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若所述目标缓存应用节点中不存在所述目标键值对应的数据,则从数据库中读取所述目标键值对应的数据。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
将从数据库中读取的所述目标键值对应的数据写入所述目标缓存应用节点。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若所述子键值对应存放的缓存应用节点中不存在所述子键值对应的数据,则将所述目标键值对应的数据写入所述子键值对应存放的缓存应用节点。
5.根据权利要求1所述的方法,其特征在于,所述将所述目标键值散列为至少一个子键值,包括:
读取缓存监控指标,根据所述缓存监控指标确定将所述目标键值散列为子键值的数量。
6.一种数据缓存系统,其特征在于,所述系统包括:
接收模块,用于接收对目标键值的数据访问请求;
缓存集群监控模块,用于监控缓存集群的缓存监控指标;
散列模块分别与所述接收模块以及所述缓存集群监控模块连接,用于响应于所述数据访问请求,读取缓存监控指标,根据所述缓存监控指标确定将所述目标键值散列为子键值的数量,确定所述子键值对应存放的缓存应用节点,其中,每个所述缓存应用节点存放所述子键值的数量偏差小于预设值;
二级缓存模块包括缓存读取二级单元与缓存写入二级单元,所述缓存读取二级单元与所述散列模块连接,用于为所述数据访问请求分配所述子键值,判断所述子键值对应存放的缓存应用节点中是否存在所述子键值对应的数据,若所述子键值对应存放的缓存应用节点中存在所述子键值对应的数据,读取所述子键值对应的数据,若所述子键值对应存放的缓存应用节点中不存在所述子键值对应的数据,从所述目标键值对应存放的目标缓存应用节点中读取所述目标键值对应的数据,若所述目标缓存应用节点中不存在所述目标键值对应的数据,则从数据库中读取所述目标键值对应的数据;
所述缓存写入二级单元与所述缓存读取二级单元连接,用于若所述目标缓存应用节点中不存在所述目标键值对应的数据,则将从数据库中读取的所述目标键值对应的数据写入所述目标缓存应用节点,若所述目标缓存应用节点中存在所述目标键值对应的数据,所述子键值对应存放的缓存应用节点中存在所述子键值对应的数据,则将所述目标键值对应的数据写入所述子键值对应存放的缓存应用节点。
7.一种数据缓存装置,其特征在于,所述装置包括:
接收模块,用于接收对目标键值的数据访问请求;
散列模块,用于响应于所述数据访问请求,将所述目标键值散列为至少一个子键值,确定所述子键值对应存放的缓存应用节点,其中,所述子键值与所述目标键值不同,所述子键值对应的数据与所述目标键值对应的数据相同,每个所述缓存应用节点存放所述子键值的数量偏差小于预设值;
第一读取模块,用于为所述数据访问请求分配所述子键值,判断所述子键值对应存放的缓存应用节点中是否存在所述子键值对应的数据,若是,读取所述子键值对应的数据,若否,从所述目标键值对应存放的目标缓存应用节点中读取所述目标键值对应的数据。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括:
第二读取模块,用于若所述目标缓存应用节点中不存在所述目标键值对应的数据,则从数据库中读取所述目标键值对应的数据。
9.一种存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至5中任一项所述数据缓存方法。
10.一种计算机设备,包括存储介质、处理器及存储在存储介质上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至5中任一项所述数据缓存方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311562513.7A CN117591558A (zh) | 2023-11-22 | 2023-11-22 | 数据缓存方法、系统、装置及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311562513.7A CN117591558A (zh) | 2023-11-22 | 2023-11-22 | 数据缓存方法、系统、装置及设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117591558A true CN117591558A (zh) | 2024-02-23 |
Family
ID=89921333
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311562513.7A Pending CN117591558A (zh) | 2023-11-22 | 2023-11-22 | 数据缓存方法、系统、装置及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117591558A (zh) |
-
2023
- 2023-11-22 CN CN202311562513.7A patent/CN117591558A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11003625B2 (en) | Method and apparatus for operating on file | |
WO2017050014A1 (zh) | 一种数据存储处理方法和装置 | |
US20130305239A1 (en) | Catalog-Based Software Component Management | |
US11314689B2 (en) | Method, apparatus, and computer program product for indexing a file | |
US11093410B2 (en) | Cache management method, storage system and computer program product | |
US6807615B1 (en) | Apparatus and method for providing a cyclic buffer using logical blocks | |
CN107197359B (zh) | 视频文件缓存方法及装置 | |
CN111857539B (zh) | 用于管理存储系统的方法、设备和计算机可读介质 | |
CN110555001A (zh) | 数据处理方法、装置、终端及介质 | |
US11226778B2 (en) | Method, apparatus and computer program product for managing metadata migration | |
CN109800236A (zh) | 支持多节点的分布式缓存方法及设备 | |
CN112148736A (zh) | 缓存数据的方法、设备及存储介质 | |
CN111803917A (zh) | 资源的处理方法和装置 | |
CN105808451B (zh) | 一种数据缓存方法以及相关装置 | |
EP3249539B1 (en) | Method and device for accessing data visitor directory in multi-core system | |
CN109947667B (zh) | 数据访问预测方法和装置 | |
US20200349186A1 (en) | Method, apparatus and computer program product for managing metadata of storage object | |
CN104408056B (zh) | 一种数据处理方法和装置 | |
CN112130747A (zh) | 分布式对象存储系统及数据读写方法 | |
WO2016090985A1 (zh) | 缓存的读取、读取处理方法及装置 | |
WO2020000734A1 (zh) | 存储对象的空间管理方法、装置、计算机装置及存储介质 | |
CN117591558A (zh) | 数据缓存方法、系统、装置及设备 | |
WO2022206170A1 (zh) | 一种数据处理方法、服务端及系统 | |
CN111209304B (zh) | 数据处理方法、装置及系统 | |
CN115794366A (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 |