CN118035292A - 一种数据存储系统以及缓存管理方法、装置、设备及系统 - Google Patents
一种数据存储系统以及缓存管理方法、装置、设备及系统 Download PDFInfo
- Publication number
- CN118035292A CN118035292A CN202311640423.5A CN202311640423A CN118035292A CN 118035292 A CN118035292 A CN 118035292A CN 202311640423 A CN202311640423 A CN 202311640423A CN 118035292 A CN118035292 A CN 118035292A
- Authority
- CN
- China
- Prior art keywords
- data
- cache
- data object
- cache unit
- unit
- 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
- 238000007726 management method Methods 0.000 title claims abstract description 62
- 238000013500 data storage Methods 0.000 title claims abstract description 49
- 230000002085 persistent effect Effects 0.000 claims abstract description 11
- 238000003860 storage Methods 0.000 claims description 78
- 238000000034 method Methods 0.000 claims description 39
- 239000000872 buffer Substances 0.000 claims description 28
- 238000012217 deletion Methods 0.000 claims description 28
- 230000037430 deletion Effects 0.000 claims description 28
- 238000004590 computer program Methods 0.000 claims description 11
- 230000008030 elimination Effects 0.000 claims description 11
- 238000003379 elimination reaction Methods 0.000 claims description 11
- 238000013523 data management Methods 0.000 claims description 9
- 238000010926 purge Methods 0.000 claims 3
- 238000004364 calculation method Methods 0.000 abstract description 4
- 238000010586 diagram Methods 0.000 description 9
- 238000004891 communication Methods 0.000 description 8
- 230000008569 process Effects 0.000 description 7
- 238000012545 processing Methods 0.000 description 7
- 230000009471 action Effects 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 239000000243 solution Substances 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000005484 gravity Effects 0.000 description 1
- 238000002347 injection Methods 0.000 description 1
- 239000007924 injection Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000011022 operating instruction Methods 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供了一种数据存储系统以及缓存管理方法、装置、设备及系统,其中,所述数据存储系统采用Mybatis持久层框架提供一级缓存和二级缓存的支持,利用Redis集群作为分布式缓存,改造Mybatis的二级缓存,能够实现分布式服务集群中所有服务节点之间的缓存共享,提高服务节点之间的数据一致性,提高缓存命中率,减少数据库访问次数,减少对数据库的压力,另外,所述系统中的二级缓存被配置为存储第一服务节点查询的满足第一缓存策略的数据对象,通过预先指定需要在二级缓存中进行存储的数据对象对应的查询语句,能够实现对二级缓存的精细化管理,而且极大降低了数据查询计算量,提高了查询效率。
Description
技术领域
本申请涉及数据处理技术领域,具体涉及一种数据存储系统以及缓存管理方法、装置、设备及系统。
背景技术
随着互联网的快速发展及互联网使用人数的增加,用户的访问量级及数据量越来越大。当请求量大的时候,直接从磁盘读取数据,会造成磁盘访问压力过大,导致磁盘崩溃,数据库压力大。此外,从磁盘中读取数据,响应速度较慢。因此,通常将访问量很大,但是数据变化不大的热点数据存储在缓存中,来提升数据的读写速度。
Mybatis持久层框架能够提供对一级缓存和二级缓存的支持,但是因为Mybatis的二级缓存的数据存储在内存中,所以在分布式服务集群环境中,Mybatis的二级缓存仅支持在单个服务节点上运行,每个服务节点独立维护自己的缓存实例,无法实现多个服务节点之间的缓存共享,服务节点之间的热点数据不能够及时同步更新、灵活性比较差,严重影响分布式服务集群服务节点之间的数据一致性,同时还会导致缓存命中率下降,需要频繁从数据库中读取数据,影响系统性能。
发明内容
有鉴于此,本申请提供了一种数据存储系统以及缓存管理方法、装置、设备及系统,能够实现分布式服务集群中所有服务节点之间的缓存共享,还能够实现对二级缓存的精细化管理。
根据本申请实施例的第一方面,提供了一种数据存储系统,所述系统采用Mybatis持久层框架提供一级缓存和二级缓存的支持;
所述系统包括:第一缓存单元、第二缓存单元以及数据库,其中,
所述第一缓存单元包括Mybatis持久层框架提供的多个一级缓存,每一个一级缓存均被配置为存储对应的会话对象查询的数据对象;
所述第二缓存单元包括部署在Redis集群服务器上的二级缓存,所述二级缓存被配置为存储第一服务节点查询的满足第一缓存策略的数据对象,其中,所述第一服务节点表示分布式服务集群中的任一服务节点,所述第一缓存策略包括查询语句缓存策略,所述查询语句缓存策略包括对预设查询语句集合内的查询语句对应的数据对象进行存储的策略。
可选的,所述缓存策略还包括数据对象淘汰策略和/或数据对象过期清除策略,所述数据对象淘汰策略包括在容量已满的情况下进行数据对象淘汰的策略,所述数据对象过期清除策略包括对存储时长超出存储时长阈值的数据对象进行清除的策略。
根据本申请实施例的第二方面,提供了一种缓存管理方法,应用于如本申请实施例第一方面任一项所述的数据存储系统,所述方法包括:
获取第一服务节点的数据查询请求,其中,所述第一服务节点包括分布式服务集群中的任一服务节点,所述数据查询请求包括查询语句和查询条件;
根据预设的配置信息以及所述查询语句,确定所述数据存储系统中第二缓存单元是否为第一数据对象的目标存储空间,其中,所述配置信息包括需要存储至第二缓存单元的数据对象对应的查询语句集合,所述第一数据对象表示所述数据查询请求对应的目标数据对象;
在所述第二缓存单元为所述目标存储空间的情况下,根据所述数据查询请求,在所述第二缓存单元中查找所述第一数据对象;
在所述第二缓存单元中未查找到所述第一数据对象的情况下,根据所述数据查询请求,在所述数据库中查找所述第一数据对象,并将所述第一数据对象存储至所述第二缓存单元。
可选的,所述配置信息还包括所述第二缓存单元的总容量;
将所述第一数据对象存储至所述第二缓存单元之前,所述方法还包括:
根据所述第二缓存单元的已用容量以及所述第二缓存单元的总容量,确定所述第二缓存单元的可用容量;
在所述第一数据对象的占用容量大于所述可用容量时,根据数据对象的最近访问时间确定所述第二缓存单元中各个数据对象的删除优先级;
根据所述删除优先级,确定目标删除对象,所述目标删除对象包括至少一个数据对象,且所述目标删除对象的占用容量大于或者等于所述第一数据对象的占用容量;
删除所述目标删除对象。
可选的,将所述第一数据对象存储至所述第二缓存单元之后,所述方法还包括:
设置所述第一数据对象在所述第二缓存单元中的存储时长阈值;
在第一存储时长大于所述存储时长阈值的情况下,在所述第二缓存单元中删除所述第一数据对象,所述第一存储时长表示所述第一数据对象在所述第二缓存单元中的实际存储时长。
可选的,在所述第二缓存单元中未查找到所述第一数据对象的情况下,根据所述数据查询请求,在所述数据库中查找所述第一数据对象,包括:
在所述第二缓存单元中未查找到所述第一数据对象的情况下,根据所述数据查询请求,在所述第一缓存单元中查找所述第一数据对象;
在所述第一缓存单元中未查找到所述第一数据对象的情况下,根据所述数据查询请求,在所述数据库中查找所述第一数据对象。
根据本申请实施例的第三方面,提供了一种缓存管理装置,应用于如本申请实施例第一方面任一项所述的数据存储系统;所述装置包括:
第一单元,用于获取第一服务节点的数据查询请求,其中,所述第一服务节点包括分布式服务集群中的任一服务节点,所述数据查询请求包括查询语句和查询条件;
第二单元,用于根据预设的配置信息以及所述查询语句,确定所述数据存储系统中第二缓存单元是否为第一数据对象的目标存储空间,其中,所述配置信息包括需要存储至第二缓存单元的数据对象对应的查询语句集合,所述第一数据对象表示所述数据查询请求对应的目标数据对象;
第三单元,用于在所述第二缓存单元为所述目标存储空间的情况下,根据所述数据查询请求,在所述第二缓存单元中查找所述第一数据对象;
第四单元,用于在所述第二缓存单元中未查找到所述第一数据对象的情况下,根据所述数据查询请求,在所述数据库中查找所述第一数据对象,并将所述第一数据对象存储至所述第二缓存单元。
根据本申请实施例的第四方面,提供了一种缓存管理设备,包括:
处理器,以及与所述处理器相连接的存储器;
所述存储器用于存储计算机程序;
所述处理器用于调用并执行所述存储器中的所述计算机程序,以执行如本申请实施例第二方面中任一项所述的缓存管理方法。
根据本申请实施例的第五方面,提供了一种计算机可读存储介质,包括:
所述存储介质上存储有计算机程序,所述计算机程序被计算机执行时,以使得实现如本申请实施例第二方面中任一项所述的缓存管理方法。
根据本申请实施例的第六方面,提供了一种数据管理系统,包括:如本申请实施例第一方面任一项所述的数据存储系统以及如本申请实施例第四方面所述的缓存管理设备。
本申请提出的技术方案,采用Mybatis持久层框架提供一级缓存和二级缓存的支持,利用Redis集群作为分布式缓存,改造Mybatis的二级缓存,能够实现分布式服务集群中所有服务节点之间的缓存共享,提高服务节点之间的数据一致性,提高缓存命中率,减少数据库访问次数,减少对数据库的压力。另外,本申请提出的技术方案,指定了需要在二级缓存中进行存储的数据对象对应的查询语句,极大的降低了数据查询计算量,提高了查询效率,能够实现对二级缓存的精细化管理。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例提供的一种数据管理系统的结构示意图。
图2为本申请实施例提供的一种数据存储系统的结构示意图。
图3为本申请实施例提供的一种缓存管理方法的流程示意图。
图4为本申请实施例提供的另一种缓存管理方法的流程示意图。
图5为本申请实施例提供的一种缓存管理装置的结构示意图。
图6为本申请实施例提供的一种采购系统的结构示意图。
图7为本申请实施例提供的一种缓存管理设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
随着互联网的快速发展及互联网使用人数的增加,用户的访问量级及数据量越来越大。当请求量大的时候,直接从磁盘读取数据,会造成磁盘访问压力过大,导致磁盘崩溃,数据库压力大。此外,从磁盘中读取数据,响应速度较慢。因此,通常将访问量很大,但是数据变化不大的热点数据存储在缓存中,来提升数据的读写速度。
Mybatis持久层框架能够提供对一级缓存和二级缓存的支持,但是因为Mybatis的二级缓存的数据存储在内存中,所以在分布式服务集群环境中,Mybatis的二级缓存仅支持在单个服务节点上运行,每个服务节点独立维护自己的缓存实例,无法实现多个服务节点之间的缓存共享,服务节点之间的热点数据不能够及时同步更新、灵活性比较差,严重影响分布式服务集群服务节点之间的数据一致性,同时还会导致缓存命中率下降,需要频繁从数据库中读取数据,影响系统性能。
有鉴于此,本申请提供了一种数据存储系统以及缓存管理方法、装置、设备及系统,能够实现分布式服务集群中所有服务节点之间的缓存共享,还能够实现对二级缓存的精细化管理,在以下实施例中将逐一进行详细说明。
示例性实施环境
为了便于理解,本申请实施例对一种数据管理系统进行了介绍。
请参考图1,图1为本申请实施例提供的一种数据管理系统。如图1所示,数据管理系统包括数据存储系统110以及缓存管理设备120,其中,数据存储系统110包括第一缓存单元、第二缓存单元和数据库,用于存储数据,提供了可靠的数据存储和访问能力,缓存管理设备120用于执行本申请实施例提供的缓存管理方法,通过使用数据存储系统提供的接口,对数据存储系统中的数据进行管理。至于数据存储系统以及缓存管理方法的具体内容,将在后续实施例中进行介绍,在此不做详细说明。
示例性系统
接下来,将结合图2对数据存储系统进行详细介绍。
图2为本申请实施例提供的一种数据存储系统的结构示意图,如图2所示,数据存储系统110包括第一缓存单元111、第二缓存单元112、数据库113。图2中还包括分布式服务集群130。
分布式服务集群130为由多个服务节点构成的集群或分布式系统,每一个服务节点对应独立的服务器或计算机,具备通信、计算、存储功能,服务节点之间通过网络进行通信和协调,共同工作以完成整个系统的目标。每一个服务节点,均基于SpringCloud,构建有一个springMVC+Mybatis+mysql+Redis后端服务。每一个服务节点都有自己对应的一级缓存,所有服务节点共享一个二级缓存和一个数据库。需要说明的是,本申请对分布式服务集群130所包括的服务节点的数量以及各服务节点的部署位置不做限制。
数据存储系统采用Mybatis持久层框架提供一级缓存和二级缓存的支持。
第一缓存单元111包括Mybatis框架提供的多个一级缓存,每一个一级缓存均被配置为存储对应的会话对象查询的数据对象。
第一缓存单元111基于Mybatis的一级缓存机制实现,一级缓存是基础执行器(BaseExecutor)的永久缓存(PerpetualCache)类型的本地缓存(localCache)。
数据对象可以理解为第一缓存单元111、第二缓存单元112以及数据库113中与存储单元标识对应的数据,可以是一个数据,也可以是一组数据。例如,第一缓存单元111与第二缓存单元112均采用键值对{Key:Value}的形式存储数据,那么键值对即为数据存储单元,key为数据存储单元标识,Value为数据对象。
会话对象可以理解为分布式集群中的一个服务节点与数据库之间的一次会话,所述会话对象可以理解为分布式集群中的一个服务节点与数据库之间的一次会话。
会话对象查询的数据对象可以理解为分布式集群中的一个服务节点与数据库之间的一次会话期间查询到的所有目标数据对象。
一个一级缓存内存储一个会话对象查询的数据对象,即存储一个服务节点与数据库之间的一次会话中查询的所有目标数据对象,位于该次会话内部,生命周期与该次会话的生命周期一致,当该次会话关闭时,存储该次会话查询数据的一级缓存内容也会被销毁。
第二缓存单元112包括部署在Redis集群服务器上的二级缓存,所述二级缓存被配置为存储第一服务节点查询的满足第一缓存策略的数据。
第二缓存单元112包括一个分布式的二级缓存。该二级缓存部署在Redis集群服务器中,基于Redis内存数据库实现,包括多个二级缓存节点,每个二级缓存节点可以是Redis集群中的一个节点。
所述第一服务节点表示分布式服务集群中的任意服务节点。在分布式集群中,每一个第一服务节点查询的满足第一缓存策略的数据都会被存储在同一个部署在Redis集群服务器上的二级缓存中,根据预设的分配策略被分配至二级缓存中的各个二级缓存节点中。需要说明的是,本申请对Redis集群服务器所包括的服务器的数量、各服务器的部署位置不做限制。
所述第一缓存策略为预先设置的缓存策略,包括查询语句缓存策略,所述查询语句缓存策略包括对预设查询语句集合内的查询语句对应的数据对象进行存储的策略。
所述预设查询语句集合可以理解为预先设置的不同查询语句组成的集合,集合中包括至少一个查询语句,本申请对所述预设查询语句集合的内容不做限定。
可选的,在配置系统参数时设置所述查询语句集合。示例性的,在定义RedisCacheAbstract实现org.apache.ibatis.cache接口时,设置参数cachesSelect,参数cachesSelect包括所有需要进行二级缓存的mapper中的SQL语句,设置该参数的过程即为预先设置所述设查询语句集合的过程。
查询语句对应的数据对象可以理解为利用查询语句进行数据查询时,查询到的目标数据对象。
具体的,查询语句缓存策略可以理解为当分布式服务集群中的任意一个服务节点进行数据查询时,判断服务节点发送的查询语句是否属于预设的查询语句集合,若属于,则将服务节点发送的查询语句查询到的目标数据对象存储至二级缓存,若不属于,则不将服务节点发送的查询语句查询到的目标数据对象存储至二级缓存。
满足查询语句缓存策略的数据对象,可以理解为预设查询语句集合中的查询语句进行数据查询时,查询到的目标数据对象。
数据库113可以是关系型数据库,例如MySQL、Oracle等,也可以是非关系型数据库,例如NoSQL等,本发明对数据库的具体部署、配置情况不做限制。
本申请实施例提出的数据存储系统,采用Mybatis持久层框架提供一级缓存和二级缓存的支持,利用Redis集群改造Mybatis的二级缓存,实现了基于Mybatis框架的分布式二级缓存,能够实现分布式服务集群中所有服务节点之间的缓存共享,提高服务节点之间的数据一致性,提高缓存命中率,减少数据库访问次数,减少对数据库的压力。另外,本申请提出的数据存储系统中,指定了需要在二级缓存中进行存储的数据对象对应的查询语句,能够实现对二级缓存的精细化管理。
作为一种可选的实现方式,所述第一缓存策略还包括数据对象淘汰策略和/或数据对象过期清除策略,所述数据对象淘汰策略包括在容量已满的情况下进行数据对象淘汰的策略,所述数据对象过期清除策略包括对存储时长超出存储时长阈值的数据对象进行清除的策略。
所述容量可以理解为二级缓存可以容纳的总数据量,可以用可容纳字节来表示,也可以用可容纳条目数来表示。
可选的,在配置系统参数时设置二级缓存的容量。示例性的,在定义RedisCacheAbstract实现org.apache.ibatis.cache接口时,设置参数cacheSize,参数cachesSelect包括二级缓存的容量。
具体的,在容量已满的情况下进行数据对象淘汰,可以理解为在将待存储的数据对象存储进二级缓存时,若二级缓存的容量已满,则需要对二级缓存中的至少一个数据单元中的数据对象进行清除,以使得可以将待存储的数据对象存储进二级缓存。所述数据对象淘汰策略规定了在容量已满的情况下进行数据对象淘汰的处理方法。
可选的,所述数据对象淘汰策略可以是LRU(The LeastRecently Used,最近最少使用)、LFU(Least frequentlyused,最不经常使用)等数据淘汰策略。
所述存储时长阈值可以理解为数据对象在二级缓存内能够存储的最大时长,即数据对象在二级缓存中的有效期,当数据对象在二级缓存内的存储时长超过该时长时,该数据对象过期失效。
可选的,在将数据对象存储至二级缓存时,记录该数据对象的存储时长阈值。可选的,在配置系统参数时设置统一的存储时长阈值,所有存储进二级缓存的数据对象均对应该存储时长阈值。示例性的,在定义RedisCacheAbstract实现org.apache.ibatis.cache接口时,设置参数expireMinutes,参数expireMinutes中包括数据对象的存储时长阈值。
具体的,数据对象过期清除策略可以理解为当二级缓存中的某个数据对象在二级缓存中的存储时长超出该数据对象的存储时长阈值时,将该数据对象进行清除。
下面将对利用Redis集群改造Mybatis的二级缓存,构建基于Mybatis框架的分布式二级缓存的具体实现方式进行示例性的介绍。
示例性的,基于Redis的Mybatis二级缓存的具体实现方式,包括:
第一,基于SpringCloud,构建一个springMVC+Mybatis+mysql+Redis后端服务。
第二,在Mybatis框架配置中开启二级缓存,指定具体的缓存实现类。可选的,采用在Mapper中引入<cache/>注解的方式,在Mybatis框架中开启二级缓存,指定实现的RedisCacheAbstract类。
第三,定义RedisCacheAbstract类来实现org.apache.ibatis.cache接口,将Redis内存数据库作为Mybatis二级缓存的存储介质。
对于上述的定义RedisCacheAbstract类,需要设置的参数包括:cachesSelect(需要缓存的mapper中的SQL语句集合)、cacheSize(缓存大小,条目数)、expireMinutes(缓存过期时间)。
对于上述的实现org.apache.ibatis.cache接口,需要实现的方法包括:
putObject(新增一个缓存数据)、getObject(获取一个缓存数据)、removeObject(清除缓存数据)、clear(清空当前空间下所有缓存)。
示例性方法
接下来,将结合图3-图4对本申请实施例提供的缓存管理方法进行详细介绍,该方法应用于上述任一实施例提出数据存储系统。
图3为本申请实施例提供的一种缓存管理方法,如图3所示,所述方法包括步骤S301-S304:
S301、获取第一服务节点的数据查询请求。
其中,所述第一服务节点包括分布式服务集群中的任一服务节点,所述数据查询请求包括查询语句和查询条件。
所述查询语句可以理解为用来指定数据查询请求所需数据的结构和内容的语句,通常采用特定的语法或查询语言,例如SQL(Structured Query Language)语句等。查询语句描述了数据的来源、要返回的字段、表之间的关联关系等信息。
所述查询条件可以理解为用于限定数据查询请求对应的查询结果集的条件,用于过滤数据,以便只返回满足指定条件的数据对象。
根据前述内容可知,分布式服务集群中包括多个服务节点,每个服务节点都对应用独立服务器或计算机,能够发起数据查询请求,且每一个服务节点都有自己对应的一级缓存,所有服务节点共享一个二级缓存和一个数据库。
在第一服务节点发起数据查询请求时,会生成该次查询的查询语句以及查询条件,并将包括查询语句和查询条件的数据查询请求发送给缓存管理设备。
缓存管理设备能够获取到分布式服务集群中任意一个节点发起的数据查询请求,当第一服务节点发起数据查询请求,缓存管理设备即可获取到第一服务节点发起的数据查询请求,以及数据查询请求中包含的查询语句和查询条件。
S302、根据预设的配置信息以及所述查询语句,确定所述数据存储系统中第二缓存单元是否为第一数据对象的目标存储空间。
其中,所述配置信息包括需要存储至第二缓存单元的数据对象对应的查询语句集合,所述第一数据对象表示所述数据查询请求对应的目标数据对象。
所述配置信息可以理解为预先设置的与缓存管理相关的参数或选项。
所述查询语句集合对应前述实施例中的预设查询语句集合,包括需要存储至第二缓存单元的所有数据对象对应的所有查询语句,即只有包括该查询语句集合中的查询语句的数据查询请求所查询到数据对象才需要进行二级缓存,需要被存储在第二缓存单元中,其余的数据查询请求所查询到的数据对象不需要进行二级缓存,无需被存储在第二缓存单元中。
具体的,缓存管理设备在获取到第一服务节点的数据查询请求后,确定查询请求中的查询语句,判断所述查询语句是否属于第一查询语句集合,若属于,则可以确定第一数据对象需要被存储在数据存储系统的第二缓存单元中,数据存储系统的第二缓存单元是第一数据对象的目标存储空间;若不属于,则可以确定第一数据对象不需要被存储在第二缓存单元中,第二缓存单元不是第一数据对象的目标存储空间。
S303、在所述第二缓存单元为所述目标存储空间的情况下,根据所述数据查询请求,在所述第二缓存单元中查找所述第一数据对象。
第二缓存单元是第一数据对象的目标存储空间,代表着第二缓存单元中有可能存储有第一数据对象,那么,在这种情况下,需要进行二级缓存查询,根据数据查询请求中的查询语句和查询条件,在第二缓存单元中查找第一数据对象。
若在第二缓存单元中查找到第一数据对象,则返回第一数据对象至第一服务节点;若在第二缓存单元中未查找到第一数据对象,则执行步骤S304。
根据数据查询请求中的查询语句和查询条件,在第二缓存单元中查找第一数据对象的具体实现方式可以参照相关现有技术实现,本申请对此不做详细说明。
S304、在所述第二缓存单元中未查找到所述第一数据对象的情况下,根据所述数据查询请求,在所述数据库中查找所述第一数据对象,并将所述第一数据对象存储至所述第二缓存单元。
如果在第二缓存单元中未查找到第一数据对象,则需要进行数据库查询,根据数据查询请求中的查询语句和查询条件,在数据库中查找第一数据对象,并在查找到第一数据对象之后,返回第一数据对象至第一服务节点,同时将第一数据对象存储到第二缓存单元中的对应位置。
根据数据查询请求中的查询语句和查询条件在数据库中查找第一数据对象,以及将在数据库中查找到的第一数据对象存储至第二缓存单元中的对应位置的具体实现方式,均可参照相关现有技术实现,本申请对此不做详细说明。
本申请实施例提出的缓存管理方法,应用于包括利用Redis集群改造后的基于Mybatis框架的分布式二级缓存的数据存储系统,能够对分布式服务集群中的所有服务节点发起的数据查询请求进行处理,提高所有服务节点之间的数据一致性。另外,本申请提出的缓存管理方法,预先设置有需要存储至第二缓存单元的数据对象对应的查询语句集合,在获取到数据查询请求后,通过判断数据查询请求中的查询语句是否属于该查询语句集合,可以确定第二缓存单元中是否有可能存储该数据查询请求所需的第一数据对象,只在有可能的时候才在第二缓存单元中进行查询,极大的降低了数据查询计算量,提高了查询效率,实现了对二级缓存的精细化管理。
作为一种可选的实现方式,所述配置信息还包括所述第二缓存单元的总容量。在该实现方式中,步骤S304中“将所述第一数据对象存储至所述第二缓存单元”之前,所述方法还包括步骤A1-A4:
A1、根据所述第二缓存单元的已用容量以及所述第二缓存单元的总容量,确定所述第二缓存单元的可用容量。
根据前述内容可知,在配置系统参数时可以设置二级缓存的容量,该二级缓存的容量可以理解为所述第二缓存单元的总容量。
第二缓存单元的可用容量可以理解为第二缓存单元中剩余的未存储数据的空间大小。
第二缓存单元的已用容量可以理解为第二缓存单元中存储的数据占用的空间大小。
第二缓存单元的可用容量=第二缓存单元的总容量-第二缓存单元的已用容量。
A2、在所述第一数据对象的占用容量大于所述可用容量时,根据数据对象的最近访问时间确定所述第二缓存单元中各个数据对象的删除优先级。
第一数据的占用容量可以理解为若将第一数据存储在第二缓存单元中,需要占据的空间大小。
将第一数据对象的占用容量与第二缓存单元的可用容量进行对比,若在第一数据对象的占用容量大于第二缓存单元的可用容量,则代表第二缓存单元无法存储第一数据对象,需要清除第二缓存单元中的至少一个数据对象,为第一数据对象的存储提供足够空间。
所述删除优先级表示第二缓存单元中存储的每一个数据对象的删除优先度,优先级越高,则代表优先删除。
可选的,删除优先级从高到低的顺序与每一个数据对象的最近访问时间从远至近的顺序相同。
A3、根据所述删除优先级,确定目标删除对象,所述目标删除对象包括至少一个数据对象,且所述目标删除对象的占用容量大于或者等于所述第一数据对象的占用容量。
按照删除优先级由高到低的顺序删除数据对象,一直到第二缓存空间中的可用容量大于或者等于第一数据对象的占用容量。
A4、删除所述目标删除对象。
作为一种可选的实现方式,步骤S304中“将所述第一数据对象存储至所述第二缓存单元”之后,所述方法还包括B1-B2:
B1、设置所述第一数据对象在所述第二缓存单元中的存储时长阈值。
根据前述内容可知,所述存储时长阈值可以理解为数据对象在二级缓存内能够存储的最大时长,即数据对象在二级缓存中的有效期,当数据对象在二级缓存内的存储时长超过该时长时,该数据对象过期失效。
具体的,在将第一数据对象存储至第二缓存单元的对应位置后,记录第一数据对象的存储时长阈值。
B2、在第一存储时长大于所述存储时长阈值的情况下,在所述第二缓存单元中删除所述第一数据对象。
每一个数据对象在存储至第二缓存单元时,需要记录该数据对象的最近访问时间。可选的,通过Redis的Zset集合记录数据对象的最近访问时间。
所述第一存储时长表示所述第一数据对象在所述第二缓存单元中的实际存储时长。实时对比第一数据对象的第一存储时长和存储时长阈值,在第一存储时长大于所述存储时长时,可以确定第一数据对象过期失效,在第二缓存单元中删除第一数据对象。
作为一种可选的实现方式,步骤S304中“在所述第二缓存单元中未查找到所述第一数据对象的情况下,根据所述数据查询请求,在所述数据库中查找所述第一数据对象”,包括步骤C1-C2:
C1、在所述第二缓存单元中未查找到所述第一数据对象的情况下,根据所述数据查询请求,在所述第一缓存单元中查找所述第一数据对象。
在第一缓存单元中查找第一数据对象的具体实现方式可以参照相关现有技术实现,本申请对此不做限定。
C2、在所述第一缓存单元中未查找到所述第一数据对象的情况下,根据所述数据查询请求,在所述数据库中查找所述第一数据对象。
图4为本申请实施例提供的另一种缓存管理方法的流程图,如图4所示,本实施例提供的缓存管理方法包括步骤S401-S4011:
S401、获取第一服务节点的数据查询请求。
步骤S401与前述实施例中步骤S301对应,步骤S401的具体内容可参考步骤S301的具体内容,本申请对此不做赘述。
S402、根据预设的配置信息以及所述查询语句,确定所述数据存储系统中第二缓存单元是否为第一数据对象的目标存储空间。
步骤S402与前述实施例中步骤S302对应,步骤S402的具体内容可参考步骤S302的具体内容,本申请对此不做赘述。
在确定第二缓存单元是第一数据对象的目标存储空间时,执行步骤S403,在确定第二缓存单元不是第一数据对象的目标存储空间时,可以确定第二缓存单元中一定没有存储第一数据对象,此时,没有查询第二缓存单元的必要,执行步骤S404。
S403、在所述第二缓存单元为所述目标存储空间的情况下,根据所述数据查询请求,在所述第二缓存单元中查找所述第一数据对象。
步骤S403与前述实施例中步骤S303对应,步骤S403的具体内容可参考步骤S303的具体内容,本申请对此不做赘述。
若在第二缓存单元中查找到第一数据对象,则执行步骤S4010,返回第一数据对象;若在第二缓存单元中未查找到第一数据对象,则执行步骤S404。
S404、根据所述数据查询请求,在第一缓存单元中查找所述第一数据对象。
若在第一缓存单元中查找到第一数据对象,则执行步骤S4010,返回第一数据对象;若在第一缓存单元中未查找到第一数据对象,则执行步骤S405。
S405、根据所述数据查询请求,在所述数据库中查找所述第一数据对象。
根据步骤S402的判断结果,在第二缓存单元是第一数据对象的目标存储空间时,执行步骤S406;在第二缓存单元不是第一数据对象的目标存储空间时,执行步骤S4010。
S406、判断第一数据对象的占用容量是否大于第二缓存单元的可用容量。
步骤S406的具体内容可参考步骤A1的具体内容,本申请对此不做赘述。
在第一数据对象的占用容量大于第二缓存单元的可用容量时,执行步骤S407;在第一数据对象的占用容量小于或等于第二缓存单元的可用容量时,执行步骤S408。
S407、根据数据对象的最近访问时间确定所述第二缓存单元中各个数据对象的删除优先级,根据删除优先级,确定目标删除对象,删除所述目标删除对象。
步骤S407的具体内容可参考步骤A2-A3的具体内容,本申请对此不做赘述。
继续执行步骤S408。
S408、将第一数据对象存储至第二缓存单元,并设置第一数据对象的存储时长阈值。
S409、记录第一数据对象的最近访问时间。
S4010、返回第一数据对象。
S4011、结束。
示例性装置
与上述的缓存管理方法相对应的,本申请实施例还提供了一种缓存管理装置,应用于如前述任一实施例提供的数据存储系统,图5是本申请实施例提供的一种缓存管理装置的结构示意图,如图5所示,该缓存管理装置可以包括:
第一单元501,用于获取第一服务节点的数据查询请求,其中,所述第一服务节点包括分布式服务集群中的任一服务节点,所述数据查询请求包括查询语句和查询条件;
第二单元502,用于根据预设的配置信息以及所述查询语句,确定所述数据存储系统中第二缓存单元是否为第一数据对象的目标存储空间,其中,所述配置信息包括需要存储至第二缓存单元的数据对象对应的查询语句集合,所述第一数据对象表示所述数据查询请求对应的目标数据对象;
第三单元503,用于在所述第二缓存单元为所述目标存储空间的情况下,根据所述数据查询请求,在所述第二缓存单元中查找所述第一数据对象;
第四单元504,用于在所述第二缓存单元中未查找到所述第一数据对象的情况下,根据所述数据查询请求,在所述数据库中查找所述第一数据对象,并将所述第一数据对象存储至所述第二缓存单元。
本申请实施例提出的缓存管理装置,应用于包括利用Redis集群改造后的基于Mybatis框架的分布式二级缓存的数据存储系统,能够对分布式服务集群中的所有服务节点发起的数据查询请求进行处理,提高所有服务节点之间的数据一致性。另外,本申请提出的缓存管理装置,能够预先设置有需要存储至第二缓存单元的数据对象对应的查询语句集合,在获取到数据查询请求后,通过判断数据查询请求中的查询语句是否属于该查询语句集合,可以确定第二缓存单元中是否有可能存储该数据查询请求所需的第一数据对象,只在有可能的时候才在第二缓存单元中进行查询,极大的降低了数据查询计算量,提高了查询效率,实现了对二级缓存的精细化管理。
可选的,所述配置信息还包括所述第二缓存单元的总容量;第四单元504具体可以用于:
根据所述第二缓存单元的已用容量以及所述第二缓存单元的总容量,确定所述第二缓存单元的可用容量;
在所述第一数据对象的占用容量大于所述可用容量时,根据数据对象的最近访问时间确定所述第二缓存单元中各个数据对象的删除优先级;
根据所述删除优先级,确定目标删除对象,所述目标删除对象包括至少一个数据对象,且所述目标删除对象的占用容量大于或者等于所述第一数据对象的占用容量;
删除所述目标删除对象。
可选的,第四单元504具体可以用于:
设置所述第一数据对象在所述第二缓存单元中的存储时长阈值;
在第一存储时长大于所述存储时长阈值的情况下,在所述第二缓存单元中删除所述第一数据对象,所述第一存储时长表示所述第一数据对象在所述第二缓存单元中的实际存储时长。
可选的,第四单元504具体可以用于:
在所述第二缓存单元中未查找到所述第一数据对象的情况下,根据所述数据查询请求,在所述第一缓存单元中查找所述第一数据对象;
在所述第一缓存单元中未查找到所述第一数据对象的情况下,根据所述数据查询请求,在所述数据库中查找所述第一数据对象。
本实施例提供的缓存管理装置,与本申请上述实施例所提供的缓存管理方法属于同一申请构思,可执行本申请上述任意实施例所提供的缓存管理方法,具备执行缓存管理方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本申请上述实施例提供的缓存管理方法的具体处理内容,此处不再加以赘述。
示例性系统
本申请实施例还提供了一种数据管理系统,如图1所示,所述数据管理系统包括前述任一实施例所述的数据存储系统以及前述任一实施例所述的缓存管理设备。示例性的,所述数据管理系统可以是如图6所示的采购系统。
所述数据管理系统通过http协议提供请求服务,在后端开发一个强大的Controller入口为数据请求做统一的处理,Controller层调用业务处理的Service层,Service层通过Dao层和数据库做交互,中间利用Redis缓存来优化和数据库交互过程。
后端服务通过SpringCloud微服务架构,通过SpringMVC技术栈实现Controller层提供Http服务,通过Spring注入方法打通Controller和Service层。最后引入Mybatis作为代码和数据库交互的技术栈。
通过Devops平台一键打包方式,打成Docker镜像,并推送至Docker仓库。通过K8S平台进行容器化部署。
示例性电子设备
本申请另一实施例还提出一种缓存管理设备,参见图7所示,该设备包括:
存储器200和处理器210;
其中,所述存储器200与所述处理器210连接,用于存储程序;
所述处理器210,用于通过运行所述存储器200中存储的程序,实现上述任一实施例公开的缓存管理方法。
具体的,上述缓存管理设备还可以包括:总线、通信接口220、输入设备230和输出设备240。
处理器210、存储器200、通信接口220、输入设备230和输出设备240通过总线相互连接。其中:
总线可包括一通路,在计算机系统各个部件之间传送信息。
处理器210可以是通用处理器,例如通用中央处理器(CPU)、微处理器等,也可以是特定应用集成电路(application-specific integrated circuit,ASIC),或一个或多个用于控制本发明方案程序执行的集成电路。还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
处理器210可包括主处理器,还可包括基带芯片、调制解调器等。
存储器200中保存有执行本发明技术方案的程序,还可以保存有操作系统和其他关键业务。具体地,程序可以包括程序代码,程序代码包括计算机操作指令。更具体的,存储器200可以包括只读存储器(read-only memory,ROM)、可存储静态信息和指令的其他类型的静态存储设备、随机存取存储器(random access memory,RAM)、可存储信息和指令的其他类型的动态存储设备、磁盘存储器、flash等等。
输入设备230可包括接收用户输入的数据和信息的装置,例如键盘、鼠标、摄像头、扫描仪、光笔、语音输入装置、触摸屏、计步器或重力感应器等。
输出设备240可包括允许输出信息给用户的装置,例如显示屏、打印机、扬声器等。
通信接口220可包括使用任何收发器一类的装置,以便与其他设备或通信网络通信,如以太网,无线接入网(RAN),无线局域网(WLAN)等。
处理器210执行存储器200中所存放的程序,以及调用其他设备,可用于实现本申请上述实施例所提供的任意一种缓存管理方法的各个步骤。
示例性计算机程序产品和存储介质
除了上述方法和设备以外,本申请的实施例还可以是计算机程序产品,其包括计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本申请各种实施例的缓存管理方法中的步骤。
所述计算机程序产品可以以一种或多种程序设计语言的任意组合来编写用于执行本申请实施例操作的程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如Java、C++等,还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行,或者完全在远程计算设备或服务器上执行。
此外,本申请的实施例还可以是存储介质,其上存储有计算机程序,计算机程序被处理器执行本说明书上述“示例性方法”部分中描述的根据本申请各种实施例的缓存管理方法中的步骤,具体可以实现以下步骤:
S301、获取第一服务节点的数据查询请求,其中,所述第一服务节点包括分布式服务集群中的任一服务节点,所述数据查询请求包括查询语句和查询条件。
S302、根据预设的配置信息以及所述查询语句,确定所述数据存储系统中第二缓存单元是否为第一数据对象的目标存储空间,其中,所述配置信息包括需要存储至第二缓存单元的数据对象对应的查询语句集合,所述第一数据对象表示所述数据查询请求对应的目标数据对象。
S303、在所述第二缓存单元为所述目标存储空间的情况下,根据所述数据查询请求,在所述第二缓存单元中查找所述第一数据对象。
S304、在所述第二缓存单元中未查找到所述第一数据对象的情况下,根据所述数据查询请求,在所述数据库中查找所述第一数据对象,并将所述第一数据对象存储至所述第二缓存单元。
对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本申请各实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减,各实施例中记载的技术特征可以进行替换或者组合。
本申请各实施例中装置及终端中的模块和子模块可以根据实际需要进行合并、划分和删减。
本申请所提供的几个实施例中,应该理解到,所揭露的终端,装置和方法,可以通过其它的方式实现。例如,以上所描述的终端实施例仅仅是示意性的,例如,模块或子模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个子模块或模块可以结合或者可以集成到另一个模块,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的模块或子模块可以是或者也可以不是物理上分开的,作为模块或子模块的部件可以是或者也可以不是物理模块或子模块,即可以位于一个地方,或者也可以分布到多个网络模块或子模块上。可以根据实际的需要选择其中的部分或者全部模块或子模块来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能模块或子模块可以集成在一个处理模块中,也可以是各个模块或子模块单独物理存在,也可以两个或两个以上模块或子模块集成在一个模块中。上述集成的模块或子模块既可以采用硬件的形式实现,也可以采用软件功能模块或子模块的形式实现。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件单元,或者二者的结合来实施。软件单元可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM或技术领域内所公知的任意其它形式的存储介质中。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种数据存储系统,其特征在于,采用Mybatis持久层框架提供一级缓存和二级缓存的支持;
所述系统包括:第一缓存单元、第二缓存单元以及数据库,其中,
所述第一缓存单元包括Mybatis持久层框架提供的多个一级缓存,每一个一级缓存均被配置为存储对应的会话对象查询的数据对象;
所述第二缓存单元包括部署在Redis集群服务器上的二级缓存,所述二级缓存被配置为存储第一服务节点查询的满足第一缓存策略的数据对象,其中,所述第一服务节点表示分布式服务集群中的任一服务节点,所述第一缓存策略包括查询语句缓存策略,所述查询语句缓存策略包括对预设查询语句集合内的查询语句对应的数据对象进行存储的策略。
2.根据权利要求1所述的系统,其特征在于,所述缓存策略还包括数据对象淘汰策略和/或数据对象过期清除策略,所述数据对象淘汰策略包括在容量已满的情况下进行数据对象淘汰的策略,所述数据对象过期清除策略包括对存储时长超出存储时长阈值的数据对象进行清除的策略。
3.一种缓存管理方法,其特征在于,应用于如权利要求1-2任一项所述的数据存储系统,所述方法包括:
获取第一服务节点的数据查询请求,其中,所述第一服务节点包括分布式服务集群中的任一服务节点,所述数据查询请求包括查询语句和查询条件;
根据预设的配置信息以及所述查询语句,确定所述数据存储系统的第二缓存单元是否为第一数据对象的目标存储空间,其中,所述配置信息包括需要存储至第二缓存单元的数据对象对应的查询语句集合,所述第一数据对象表示所述数据查询请求对应的目标数据对象;
在所述第二缓存单元为所述目标存储空间的情况下,根据所述数据查询请求,在所述第二缓存单元中查找所述第一数据对象;
在所述第二缓存单元中未查找到所述第一数据对象的情况下,根据所述数据查询请求,在所述数据存储系统的数据库中查找所述第一数据对象,并将所述第一数据对象存储至所述第二缓存单元。
4.根据权利要求3所述的方法,其特征在于,所述配置信息还包括所述第二缓存单元的总容量;
将所述第一数据对象存储至所述第二缓存单元之前,所述方法还包括:
根据所述第二缓存单元的已用容量以及所述第二缓存单元的总容量,确定所述第二缓存单元的可用容量;
在所述第一数据对象的占用容量大于所述可用容量时,根据数据对象的最近访问时间确定所述第二缓存单元中各个数据对象的删除优先级;
根据所述删除优先级,确定目标删除对象,所述目标删除对象包括至少一个数据对象,且所述目标删除对象的占用容量大于或者等于所述第一数据对象的占用容量;
删除所述目标删除对象。
5.根据权利要求3所述的方法,其特征在于,将所述第一数据对象存储至所述第二缓存单元之后,所述方法还包括:
设置所述第一数据对象在所述第二缓存单元中的存储时长阈值;
在第一存储时长大于所述存储时长阈值的情况下,在所述第二缓存单元中删除所述第一数据对象,所述第一存储时长表示所述第一数据对象在所述第二缓存单元中的实际存储时长。
6.根据权利要求3所述的方法,其特征在于,在所述第二缓存单元中未查找到所述第一数据对象的情况下,根据所述数据查询请求,在所述数据存储系统的数据库中查找所述第一数据对象,包括:
在所述第二缓存单元中未查找到所述第一数据对象的情况下,根据所述数据查询请求,在所述数据存储系统的第一缓存单元中查找所述第一数据对象;
在所述第一缓存单元中未查找到所述第一数据对象的情况下,根据所述数据查询请求,在所述数据库中查找所述第一数据对象。
7.一种缓存管理装置,其特征在于,应用于如权利要求1-2任一项所述的数据存储系统;所述装置包括:
第一单元,用于获取第一服务节点的数据查询请求,其中,所述第一服务节点包括分布式服务集群中的任一服务节点,所述数据查询请求包括查询语句和查询条件;
第二单元,用于根据预设的配置信息以及所述查询语句,确定所述数据存储系统中第二缓存单元是否为第一数据对象的目标存储空间,其中,所述配置信息包括需要存储至第二缓存单元的数据对象对应的查询语句集合,所述第一数据对象表示所述数据查询请求对应的目标数据对象;
第三单元,用于在所述第二缓存单元为所述目标存储空间的情况下,根据所述数据查询请求,在所述第二缓存单元中查找所述第一数据对象;
第四单元,用于在所述第二缓存单元中未查找到所述第一数据对象的情况下,根据所述数据查询请求,在所述数据存储系统的数据库中查找所述第一数据对象,并将所述第一数据对象存储至所述第二缓存单元。
8.一种缓存管理设备,其特征在于,包括:
处理器,以及与所述处理器相连接的存储器;
所述存储器用于存储计算机程序;
所述处理器用于调用并执行所述存储器中的所述计算机程序,以执行如权利要求3-6中任一项所述的缓存管理方法。
9.一种计算机可读存储介质,其特征在于,包括:
所述存储介质上存储有计算机程序,所述计算机程序被计算机执行时,以使得实现如权利要求3-6中任一项所述的缓存管理方法。
10.一种数据管理系统,其特征在于,包括:如权利要求1-2任一项所述的数据存储系统以及如权利要求8所述的缓存管理设备。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311640423.5A CN118035292A (zh) | 2023-12-01 | 2023-12-01 | 一种数据存储系统以及缓存管理方法、装置、设备及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311640423.5A CN118035292A (zh) | 2023-12-01 | 2023-12-01 | 一种数据存储系统以及缓存管理方法、装置、设备及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118035292A true CN118035292A (zh) | 2024-05-14 |
Family
ID=90984848
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311640423.5A Pending CN118035292A (zh) | 2023-12-01 | 2023-12-01 | 一种数据存储系统以及缓存管理方法、装置、设备及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118035292A (zh) |
-
2023
- 2023-12-01 CN CN202311640423.5A patent/CN118035292A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2849410B1 (en) | Data processing method, router and ndn system | |
US10649903B2 (en) | Modifying provisioned throughput capacity for data stores according to cache performance | |
CN108055302B (zh) | 一种图片缓存处理方法、系统和服务器 | |
US8285821B2 (en) | Method, apparatus, and system of forward caching for a managed client | |
US8819074B2 (en) | Replacement policy for resource container | |
CN100437590C (zh) | 预取对象的方法 | |
JP7322184B2 (ja) | データベース変更ストリームのキャッシュ技術 | |
CN107301215B (zh) | 一种搜索结果缓存方法及装置、搜索方法及装置 | |
CN107368608A (zh) | 基于arc替换算法的hdfs小文件缓存管理方法 | |
US10061517B2 (en) | Apparatus and method for data arrangement | |
US10015253B2 (en) | System and method for preemptive request processing | |
WO2021073510A1 (zh) | 一种数据库的统计方法及装置 | |
WO2014161261A1 (zh) | 数据的存储方法及装置 | |
WO2013086689A1 (zh) | 替换缓存对象的方法和装置 | |
CN113918857A (zh) | 一种提高分布式web应用系统性能的三级缓存加速方法 | |
EP3274844B1 (en) | Hierarchical cost based caching for online media | |
US11269784B1 (en) | System and methods for efficient caching in a distributed environment | |
CN118035292A (zh) | 一种数据存储系统以及缓存管理方法、装置、设备及系统 | |
CN110502535A (zh) | 数据访问方法、装置、设备和存储介质 | |
WO2022152086A1 (zh) | 数据缓存方法、装置、设备及计算机可读存储介质 | |
CN114390069B (zh) | 基于分布式缓存的数据访问方法与系统、设备及存储介质 | |
CN103049478B (zh) | 一种Web服务的双路缓存机制设计方法 | |
CN112214460A (zh) | 基于分布式大容量分片高性能的存储控制方法 | |
WO2022148306A1 (zh) | 一种淘汰数据的方法、装置、缓存节点以及缓存系统 | |
Tracey et al. | CacheL-A Cache Algorithm using Leases for Node Data in the Internet of Things |
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 |