基于多级缓存的数据处理方法及系统、装置和存储介质与流程

文档序号:16972862发布日期:2019-02-26 18:43阅读:142来源:国知局
基于多级缓存的数据处理方法及系统、装置和存储介质与流程

本发明涉及信息技术领域,更为具体而言,涉及一种基于多级缓存的数据处理方法及系统、设备和存储介质。



背景技术:

在分布式环境下,多个应用组件可能同时使用多类数据,这些数据又有不同的应用组件作为数据提供方。目前,一个应用组件一般包含数据库,可以管理分布式缓存中的键值。一些数据是应用组件频繁使用的,但又不频繁变动的,可以存放在分布式缓存中。查询数据的过程为:1.查询分布式缓存中指定数据,如果命中直接返回;2.第一步未命中则查询数据库,数据库如果命中,返回数据,数据库如果未命中,直接返回数据未找到。维护数据的过程为:1.更新数据库;2.更新分布式缓存。

但是这种方法在分布式环境下,对不同类型的、不同提供方的数据,无法使用“缓存+数据库”或者“内存+缓存+数据库”这种方式,因为有些参数不在本地数据库中,需要去数据提供方查询;而数据提供方在维护数据时,如果某些数据缓存在了数据使用方的本地内存,又无法及时更新;数据访问路径无法配置化,无法动态更新。



技术实现要素:

为了解决现有技术中存在的上述问题,本发明提供了一种基于多级缓存的数据处理方法及系统、设备和存储介质,有效地减少了使用数据时对数据提供方服务器和数据库造成的压力。

根据本发明的实施方式,提供了一种基于多级缓存的数据处理方法,所述方法包括:接收数据查询请求;根据所述查询请求在多级缓存中逐级查询;返回查询到的目标数据,并将所述目标数据回填至当前所在的缓存的前级缓存。

在本发明的一些实施方式中,所述多级缓存至少包括第一缓存、第二缓存和第三缓存;其中,所述根据所述查询请求在多级缓存中逐级查询包括:根据所述查询请求在所述第一缓存中查询;若在所述第一缓存中查询到所述目标数据则退出查询,否则进入所述第二缓存进行查询;若在所述第二缓存中查询到所述目标数据则退出查询,否则进入所述第三缓存进行查询;若在所述第三缓存中查询到所述目标数据则退出查询,否则返回查询失败的信息。

在本发明的一些实施方式中,所述将所述目标数据回填至当前所在的缓存的前级缓存包括:若在所述第一缓存中查询到所述目标数据则退出查询;若在所述第二缓存中查询到所述目标数据则退出查询,同时将所述目标数据回填至所述第一缓存中;若在所述第三缓存中查询到所述目标数据则退出查询,同时将所述目标数据回填至所述第一缓存和所述第二缓存中。

在本发明的一些实施方式中,所述多级缓存包括本地缓存、分布式缓存和数据库。

在本发明的一些实施方式中,所述方法还包括:接收数据变更信息,并发送至所述多级缓存;所述多级缓存根据所述数据变更信息进行信息变更。

根据本发明的实施方式,提供了一种基于多级缓存的数据处理系统,其特征在于,所述系统包括:通讯模块,用于接收数据查询请求;查询模块,用于根据所述查询请求在多级缓存中逐级查询;回填模块,用于返回查询到的目标数据,并将所述目标数据回填至当前所在的缓存的前级缓存。

在本发明的一些实施方式中,所述多级缓存至少包括第一缓存、第二缓存和第三缓存;其中,所述查询模块用于:根据所述查询请求在所述第一缓存中查询;若在所述第一缓存中查询到所述目标数据则退出查询,否则进入所述第二缓存进行查询;若在所述第二缓存中查询到所述目标数据则退出查询,否则进入所述第三缓存进行查询;若在所述第三缓存中查询到所述目标数据则退出查询,否则返回查询失败的信息。

在本发明的一些实施方式中,所述回填模块用于:若在所述第一缓存中查询到所述目标数据则退出查询;若在所述第二缓存中查询到所述目标数据则退出查询,同时将所述目标数据回填至所述第一缓存中;若在所述第三缓存中查询到所述目标数据则退出查询,同时将所述目标数据回填至所述第一缓存和所述第二缓存中。

在本发明的一些实施方式中,所述多级缓存包括本地缓存、分布式缓存和数据库。

在本发明的一些实施方式中,所述系统还包括:信息变更模块,用于接收数据变更信息,并发送至所述多级缓存;所述多级缓存根据所述数据变更信息进行信息变更。

同时,本发明提供了一种基于多级缓存的数据处理装置,包括存储器和处理器,所述存储器用于存储一条或多条计算机指令;所述处理器用于调用所述一条或多条计算机指令从而执行前述任一项的数据处理方法。

本发明还提供了一种计算机存储介质,存储有一条或多条计算机程序,所述一条或多条计算机程序在调用时实现前述任一项的数据处理方法。

本发明的实施方式通过回填的方式将数据进行多级存储,使得分布式环境下数据使用方和提供方可以分开各自部署,同时,有效地减少了使用数据时对数据提供方服务器和数据库造成的压力。

附图说明

为了便于理解本发明,以下通过具体实施方式并结合附图对本发明进行具体说明。

图1是根据本发明实施方式的一种数据处理方法的流程示意图;

图2是根据本发明实施方式的一种数据处理系统的框图。

具体实施方式

以下结合附图和具体实施方式对本发明的各个方面进行详细阐述。其中,众所周知的模块、单元及其相互之间的连接、链接、通信或操作没有示出或未作详细说明。并且,所描述的特征、架构或功能可在一个或一个以上实施方式中以任何方式组合。本领域技术人员应当理解,下述的各种实施方式只用于举例说明,而非用于限制本发明的保护范围。还可以容易理解,本文所述和附图所示的各实施方式中的模块或单元或处理方式可以按各种不同配置进行组合和设计。

首先,对本发明涉及的名词进行解释:

应用组件:业务功能、业务流程、实现模式相近,针对同一类别业务产品或服务的具体实现的集合;

应用数据:应用组件使用到的数据,数据根据意义不同分为不同类型,每一类数据下可以有多个键值对应取值;

参数提供方:如果某个应用组件负责维护某一类应用数据,则称该组件是该数据的提供方;

参数使用方:如果某个应用组件使用数据提供方提供的数据,并且不对该类数据进行维护,则称该组件是该数据的使用方。

图1是根据本发明实施方式的一种数据处理方法的流程示意图,在本发明的实施方式中,参照图1,该方法具体包括:

100:接收数据查询请求;

101:根据所述查询请求在多级缓存中逐级查询;

102:返回查询到的目标数据,并将所述目标数据回填至当前所在的缓存的前级缓存。

在本发明的实施方式中,所述多级缓存至少包括第一缓存、第二缓存和第三缓存。上述处理101可以通过以下方式实现:根据所述查询请求在所述第一缓存中查询;若在所述第一缓存中查询到所述目标数据则退出查询,否则进入所述第二缓存进行查询;若在所述第二缓存中查询到所述目标数据则退出查询,否则进入所述第三缓存进行查询;若在所述第三缓存中查询到所述目标数据则退出查询,否则返回查询失败的信息。

同样的,在本发明的实施方式中,上述处理102可以通过以下方式实现:若在所述第一缓存中查询到所述目标数据则退出查询;若在所述第二缓存中查询到所述目标数据则退出查询,同时将所述目标数据回填至所述第一缓存中;若在所述第三缓存中查询到所述目标数据则退出查询,同时将所述目标数据回填至所述第一缓存和所述第二缓存中。由此,如果下一次再查询同样的数据,就会在前面的路径查到,而节约了查询时间提升了效率。

通过上述方法,本发明的实施方式通过回填的方式将数据进行多级存储,使得分布式环境下数据使用方和提供方可以分开各自部署,同时,有效地减少了使用数据时对数据提供方服务器和数据库造成的压力。

以下,将具体说明本发明的一种示例性的数据处理方法的实现过程:

在本实现方式中,多级缓存包括本地缓存、分布式缓存和数据库,并按照本地缓存、分布式缓存和数据库的查询优先级顺序排列。

在接收到数据使用方的查询请求后,通过调用数据获取api(applicationprogramminginterface,应用程序编程接口)在多级缓存中进行数据查询。

具体的,调用方法如下表:

表1

在本实现方式中,数据获取api进入查询核心逻辑,依次调用查询路径进行查询,具体的,查询路径如下:

1.本地缓存(内存),配置路径为local,配置路径数据该类数据本地缓存的键值数量;

2.分布式缓存,配置路径为cache,配置路径数据为该类数据访问分布式缓存的实例名;

3.外呼,配置路径为remote,配置路径为该数据提供方发布的服务码;

4.持久化接口,配置路径为db,配置路径为该数据持久化查询类的名称。

其中,持久化接口中从数据库查出来的结构化数据通过json转换工具转换成json字符串,可以存入本地缓存或分布式缓存,也可以在外呼中返回,这样统一交换协议有利于数据在各部分之间的传递。

同时,查询核心逻辑依赖于当前应用组件的配置,以上4种查询路径可以根据需要配置不同的查询策略。查询策略示例为:

#数据类型=数据提供方标识,数据有效期,访问路径

具体的,例如:

transactioncontrolstrategy=false,600,local(100),cache(strategyparam),remote(srv001)

transactionaccumulationcontrolstrategy=false,600,local,cache(strategyparam),remote(srv001)

customerbacklist=false,7200,cache(customerparam)

customerratingstrategy=true,3600,cache(strategyparam),db(com.demo.customerratingstrategydao)

上述示例中,第一个数据类型transactioncontrolstrategy表示该数据为交易控制策略数据,本组件是数据使用方,有效期600秒,访问路径是首先访问本地缓存,再访问实例名是strategyparam的分布式缓存,如果之前都查询不到(或者查到的过期内容),最后访问远程服务码为srv001的服务获取。

在本实现方式中,当访问到第2个路径查询到时,会去回填更新第1个路径中的这个数据;当访问到第3个路径查询到某个数据时,会分别回填第2个和第1个路径中的这个数据,以此类推。这样,如果下一次再查询同样的数据,就会在前面的路径查到,而节约了查询时间提升了效率。特殊地,如果当前应用组件不是数据提供方,则只会更新本地缓存。

同时,在本发明的实施方式中,若有数据由于维护或者其他的原因发生了变更,则可以通过以下方式进行全局统一变更:

接收数据变更信息,并发送至所述多级缓存;

所述多级缓存根据所述数据变更信息进行信息变更。

具体的,当某个数据发生变更时,该数据的提供方发送出数据变更信息,通过将该数据变更信息发送至其他缓存,使其他缓存自行进行数据变更。优选的,可以通过例如广播的方式传递数据变更信息。同时,该数据变更信息中可以包含版本号信息,各缓存通过对比版本号信息判断是否需要进行数据变更。

图2是根据本发明实施方式的一种数据处理系统1的框图,参照图2,该数据处理系统1包括:通讯模块11,用于接收数据查询请求;查询模块12,用于根据查询请求在多级缓存中逐级查询;回填模块13,用于返回查询到的目标数据,并将目标数据回填至当前所在的缓存的前级缓存。

在本发明的实施方式中,多级缓存至少包括第一缓存、第二缓存和第三缓存;其中,查询模块12用于:根据查询请求在第一缓存中查询;若在第一缓存中查询到目标数据则退出查询,否则进入第二缓存进行查询;若在第二缓存中查询到目标数据则退出查询,否则进入第三缓存进行查询;若在第三缓存中查询到目标数据则退出查询,否则返回查询失败的信息。

在本发明的实施方式中,回填模块13用于:若在第一缓存中查询到目标数据则退出查询;若在第二缓存中查询到目标数据则退出查询,同时将目标数据回填至第一缓存中;若在第三缓存中查询到目标数据则退出查询,同时将目标数据回填至第一缓存和第二缓存中。

在本发明的实施方式中,该数据处理系统1还包括:信息变更模块14,用于接收数据变更信息,并发送至多级缓存;多级缓存根据数据变更信息进行信息变更。

可选的,本发明实施方式提供了一种基于多级缓存的数据处理装置,该数据处理装置包括存储器,用于存储一条或多条计算机指令;处理器,用于调用一条或多条计算机指令从而执行本发明前述实施方式或实现方式所提供的数据处理方法。可选地,在本发明实施方式的一种实现方式中,数据处理装置还可以包括用于进行数据通信的输入输出接口。例如,处理装置可以是智能终端、服务器等。

本发明实施方式还提供了一种计算机存储介质,存储有一条或多条计算机指令,用于在调用时实现本发明前述实施方式或实现方式提供的数据处理方法。例如,存储介质可以包括硬盘、软盘、光盘等。

虽然本文举例描述了一些实施方式,但是,在不脱离本发明实质的前提下,可以对这些实施方式进行各种变形,所有这些变形仍属于本发明的构思,并且落入本发明权利要求所限定的保护范围。

本文所公开的具体实施方式仅用于举例说明本发明,对于本领域技术人员而言,显然可以根据本文的教导进行各种修改,可以采用各种等同的方式实施本发明,因此,本发明上述公开的特定的实施方式仅仅是示例性的,其保护范围不受在此公开的结构或设计的细节所限,除非在权利要求中另有说明。因此,上述公开的特定的示例性的实施方式可进行各种替换、组合或修改,其所有的变形都落入本文公开的范围内。在缺少本文没有具体公开的任何元件或缺少本文公开的任选的部件的情况下,本文示例性公开的基于多级缓存的数据处理方法及系统、装置和存储介质仍可适当地实施。上述公开的所有的数值和范围也可进行一定变化。每当公开了具有下限和上限的数值范围,落入此范围内的任何数值及任何被包含的范围都被具体地公开了。具体而言,本文公开的数值的任一范围均可理解为列举了包含在较宽数值范围内的任一数值和范围。同样,除非申请人明确且清楚地另有定义,权利要求中的术语具有它们的清楚、通常的含义。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件结合硬件平台的方式来实现。基于这样的理解,本发明的技术方案对背景技术做出贡献的全部或者部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施方式或者实施方式的某些部分的方法。

此外,权利要求书中的部件的数量包括一个或至少一个,除非另有说明。如果本发明中的用词或术语与其它文献中的用法或含义存在不一致,则应当以与本发明所定义的为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1