分布式统一缓存实现方法、装置及系统的制作方法

文档序号:10569746阅读:204来源:国知局
分布式统一缓存实现方法、装置及系统的制作方法
【专利摘要】本发明涉及计算机技术领域,提供了一种分布式统一缓存实现方法、装置及系统。所述方法包括:预先进行如下操作:定义统一的分布式缓存应用程序编程接口;执行如下步骤:接收分布式缓存系统的调用指令,配置所述调用的分布式缓存系统;根据所述统一的分布式缓存应用程序编程接口,调用所述分布式缓存系统。本发明提供了一种更换缓存系统时实施简单且风险较低的方式。
【专利说明】
分布式统一缓存实现方法、装置及系统
【技术领域】
[0001]本发明涉及计算机技术领域,特别是涉及一种分布式统一缓存实现方法、装置及系统。
【【背景技术】】
[0002]随着互联网的发展,利用缓存的能够提升指令和数据读取速度的特性,随着本地计算机系统向分布式系统扩展,使缓存在分布式计算领域中得到了广泛的应用,也即分布式缓存(如图1所示)。分布式缓存能够处理大量的动态数据,因此比较适合应用在Web 2.0时代中的社交网站等需要由用户生成内容的场景。从本地缓存扩展到分布式缓存后,业界关注重点从CPU、内存、缓存之间的数据传输速度差异扩展到了业务系统、数据库、分布式缓存之间的数据传输速度差异。
[0003]目前开源系统中存在多种分布式缓存系统,例如memcache,redis等等。这些分布式缓存都有各自的客户端、协议、应用程序编程接口(API ,Applicat1n ProgrammingInterface)等,而没有统一的接口规范。目前针对不同的缓存系统,需要使用不同的客户端去调用不同的接口,实现方式各不相同。如果需要更换缓存系统,则需要对整体代码进行改造,实施起来较为困难,且风险大。
[0004]如何提供一种更换缓存系统时实施简单且风险较低的方式,是亟待解决的技术问题。

【发明内容】

[0005]本发明提供一种分布式统一缓存实现方法、装置及系统,旨在解决现有技术的缓存系统更换实施困难且风险高的技术问题。
[0006]根据本发明实施例的第一方面,提供一种分布式统一缓存实现方法,所述方法包括:
[0007]预先进行如下操作:
[0008]定义统一的分布式缓存应用程序编程接口;
[0009]执行如下步骤:
[0010]接收分布式缓存系统的调用指令,配置所述调用的分布式缓存系统;
[0011]根据所述统一的分布式缓存应用程序编程接口,调用所述分布式缓存系统。
[0012]在一些实施例中,所述方法还包括:在应用程序代码中通过注解的方式标识需要编辑缓存的位置。
[0013]在一些实施例中,所述定义统一的分布式缓存应用程序编程接口包括:
[0014]通过自定义代码定义统一的分布式缓存应用程序编程接口。
[0015]在一些实施例中,所述接收分布式缓存系统的调用指令,配置所述调用的分布式缓存系统包括:
[0016]接收分布式缓存系统的调用指令;
[0017]根据接收的调用指令,在配置文件中将分布式缓存系统配置成所述调用指令所调用的所述分布式缓存系统。
[0018]在一些实施例中,所述在应用程序代码中通过注解的方式标识需要编辑缓存的位置包括:
[0019]在应用程序代码中通过注解的方式标识需要增加缓存和/或删除缓存的位置。
[0020]根据本发明实施例的第二方面,还提供一种分布式统一缓存实现装置,所述装置包括:
[0021]接口预定义模块,用于定义统一的分布式缓存应用程序编程接口;
[0022]缓存配置模块,用于接收分布式缓存系统的调用指令,配置所述调用的分布式缓存系统;
[0023]缓存调用模块,用于根据所述统一的分布式缓存应用程序编程接口,调用所述分布式缓存系统。
[0024]在一些实施例中,所述装置还包括:
[0025]注解标识模块,用于在应用程序代码中通过注解的方式标识需要编辑缓存的位置。
[0026]在一些实施例中,所述接口预定义模块具体用于:通过自定义代码定义统一的分布式缓存应用程序编程接口;
[0027]所述缓存配置模块具体用于:接收分布式缓存系统的调用指令;根据接收的调用指令,在配置文件中将分布式缓存系统配置成所述调用指令所调用的所述分布式缓存系统。
[0028]在一些实施例中,所述注解标识模块具体用于:在应用程序代码中通过注解的方式标识需要增加缓存和/或删除缓存的位置。
[0029]根据本发明实施例的第三方面,还提供一种分布式统一缓存系统,所述系统包括如上所述的分布式统一缓存实现装置,所述系统中还包括定义好的统一的分布式缓存应用程序编程接口。
[0030]本发明上述实施例提供的技术方案可产生以下有益效果:通过预先定义统一的分布式缓存应用程序编程接口,应用时根据调用指令所调用的分布式缓存系统类型,在系统中配置好所要调用的分布式缓存系统,从而基于配置确定具体的分布式缓存系统实现,在切换不同的缓存系统时较为方便,不需要修改有缓存的位置,只需修改统一的缓存配置,就能更换缓存实现,因无需编写代码,减少了工作量,提高了工作效率。
[0031]本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
[0032]下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
【【附图说明】】
[0033]图1为业务系统、数据库、分布式缓存之间的数据流示意图;
[0034]图2为本发明实施例的分布式统一缓存实现方法的流程图;
[0035]图3为本发明另一实施例的分布式统一缓存实现方法的流程图;
[0036]图4为本发明实施例的分布式统一缓存实现装置的框图;
[0037]图5为本发明另一实施例的分布式统一缓存实现装置的框图;
[0038]图6为本发明实施例的分布式统一缓存系统的框图。
【【具体实施方式】】
[0039]为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0040]此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
[0041]如图1所示,本发明实施例提供了一种分布式统一缓存实现方法,该方法包括步骤S11-S12:
[0042]预先进行如下操作:
[0043]Sll、定义统一的分布式缓存应用程序编程接口。
[0044]在一实施例中,所述定义统一的分布式缓存应用程序编程接口具体包括:通过自定义代码定义统一的分布式缓存应用程序编程接口。所述分布式缓存应用程序编程接口包括缓存抽象接口、缓存可选项、过期时间枚举、序列化接口、默认序列化实现等,通过泛型接口,支持任意类型参数与返回,并提供多种存储结构。举例说明如下:
[0045]定义获取缓存的接口:0bject get(String key)。
[0046]每一接口都可以通过代码进行定义,完成所有接口的定义后形成一套完整的接口定义。通过该缓存接口定义,为用户提供方便的客户端访问框架,通过该客户端访问框架可适应不同的分布式缓存系统。
[0047]该方法还包括:执行如下步骤:
[0048]S12、接收分布式缓存系统的调用指令,配置所述调用的分布式缓存系统。
[0049]S13、根据所述统一的分布式缓存应用程序编程接口,调用所述分布式缓存系统。
[0050]在一实施例中,所述接收分布式缓存系统的调用指令,配置所述调用的分布式缓存系统具体包括:
[0051]接收分布式缓存系统的调用指令;
[0052]根据接收的调用指令,在配置文件中将分布式缓存系统配置成所述调用指令所调用的所述分布式缓存系统。
[0053]可以理解的是,上述步骤是通过在配置文件中对具体的某一分布式缓存系统实现进行配置,以确定需要调用的具体的分布式缓存系统。例如接收到memcache分布式缓存系统的调用指令后,根据该调用指令,在配置文件里面进行如下配置:
[0054]cache =memcache
[0055]表示memcache分布式缓存系统的实现。
[0056]接收到redis分布式缓存系统的调用指令后,根据该调用指令,在配置文件里面进行如下配置:
[0057]cache = redis
[0058]表示redis分布式缓存系统的实现。
[0059]因分布式缓存系统还有许多其他种类,此处不一一举例说明。
[0060]通过上述方式对配置文件进行修改,实现在配置文件中将分布式缓存系统配置成所述调用指令所调用的所述分布式缓存系统。
[0061 ]在另一实施例中,如图3所示,该方法还包括:
[0062]S14、在应用程序代码中通过注解的方式标识需要编辑缓存的位置。
[0063]在一实施例中,所述在应用程序代码中通过注解的方式标识需要编辑缓存的位置包括:在应用程序代码中通过注解的方式标识需要增加缓存和/或删除缓存的位置。例如,可通过特定的属性进行注解标识,如通过在需要标识的代码末尾增加属性remove,当增加注解remove = true时表示要删除缓存,若没有此注解则表示属于默认情况,需要增加缓存。本步骤是通过面向切面编程方式,对应用程序通过注解的形式标识是否要增加或者删除缓存,而不需要硬编码,无需增加缓存代码。
[0064]本发明实施例提供的上述方法,通过预先定义统一的分布式缓存应用程序编程接口,应用时根据调用指令所调用的分布式缓存系统类型,在系统中配置好分布式缓存系统,从而基于配置确定具体的分布式缓存系统实现,在切换不同的缓存系统时较为方便,不需要修改有缓存的位置,只需修改统一的缓存配置,就能更换缓存实现,因无需编写代码,减少了工作量,提高了工作效率。
[0065]对应本发明上述实施例提供的分布式统一缓存实现方法,本发明还提供一种分布式统一缓存实现装置100,如图4所示,所述分布式统一缓存实现装置100包括:
[0066]接口预定义模块110,用于定义统一的分布式缓存应用程序编程接口。
[0067]缓存配置模块120,用于接收分布式缓存系统的调用指令,配置所述调用的分布式缓存系统。
[0068]缓存调用模块130,用于根据所述统一的分布式缓存应用程序编程接口,调用所述分布式缓存系统。
[0069]在一实施例中,所述接口预定义模块110具体用于:通过自定义代码定义统一的分布式缓存应用程序编程接口。所述分布式缓存应用程序编程接口包括缓存抽象接口、缓存可选项、过期时间枚举、序列化接口、默认序列化实现等,通过泛型接口,支持任意类型参数与返回,并提供多种存储结构。举例说明如下:
[0070]定义获取缓存的接口:0bject get(String key)。
[0071 ]每一接口都可以通过代码进行定义,完成所有接口的定义后形成一套完整的接口定义。通过该缓存接口定义,为用户提供方便的客户端访问框架,通过该客户端访问框架可适应不同的分布式缓存系统。
[0072]所述缓存配置模块120具体用于:接收分布式缓存系统的调用指令;根据接收的调用指令,在配置文件中将分布式缓存系统配置成所述调用指令所调用的所述分布式缓存系统。
[0073]可以理解的是,上述在配置文件中将分布式缓存系统配置成所述调用指令所调用的所述分布式缓存系统是通过在配置文件中对具体的某一分布式缓存系统实现进行配置,以确定需要调用的具体的分布式缓存系统。例如接收到memcache分布式缓存系统的调用指令后,根据该调用指令,在配置文件里面进行如下配置:
[0074]cache =memcache
[0075]表不memcache分布式缓存系统的实现。
[0076]接收到redis分布式缓存系统的调用指令后,根据该调用指令,在配置文件里面进行如下配置:
[0077]cache = redis
[0078]表示redis分布式缓存系统的实现。
[0079]因分布式缓存系统还有许多其他种类,此处不一一举例说明。
[0080]通过上述方式对配置文件进行修改,实现在配置文件中将分布式缓存系统配置成所述调用指令所调用的所述分布式缓存系统。
[0081]在另一实施例中,如图5所示,所述装置还包括:
[0082]注解标识模块140,用于在应用程序代码中通过注解的方式标识需要编辑缓存的位置。
[0083]其中,所述注解标识模块140具体用于:在应用程序代码中通过注解的方式标识需要增加缓存和/或删除缓存的位置。
[0084]例如,可通过特定的属性进行注解标识,如通过在需要标识的代码末尾增加属性remove,当增加注解rem0Ve = true时表示要删除缓存,若没有此注解则表示属于默认情况,需要增加缓存。本步骤是通过面向切面编程方式,对应用程序通过注解的形式标识是否要增加或者删除缓存,而不需要硬编码,无需增加缓存代码。
[0085]本发明实施例提供的上述装置,通过预先定义统一的分布式缓存应用程序编程接口,应用时根据调用指令所调用的分布式缓存系统类型,在系统中配置好所要调用的分布式缓存系统,从而基于配置确定具体的分布式缓存系统实现,在切换不同的缓存系统时较为方便,不需要修改有缓存的位置,只需修改统一的缓存配置,就能更换缓存实现,因无需编写代码,减少了工作量,提高了工作效率。
[0086]对应本发明上述实施例提供的分布式统一缓存实现装置,如图6所示,本发明还提供一种分布式统一缓存系统200,所述系统200包括上述实施例所述的分布式统一缓存实现装置100,所述系统200中还包括定义好的统一的分布式缓存应用程序编程接口。其中分布式统一缓存实现装置100的具体组成和工作原理可参考上述实施例的描述,此处不再赘述。
[0087]本发明实施例提供的上述系统,通过预先定义统一的分布式缓存应用程序编程接口,应用时根据调用指令所调用的分布式缓存系统类型,在系统中配置好所要调用的分布式缓存系统,从而基于配置确定具体的分布式缓存系统实现,在切换不同的缓存系统时较为方便,不需要修改有缓存的位置,只需修改统一的缓存配置,就能更换缓存实现,因无需编写代码,减少了工作量,提高了工作效率。
[0088]本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
[0089]本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0090]这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0091]这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0092]以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
【主权项】
1.一种分布式统一缓存实现方法,其特征在于,所述方法包括: 预先进行如下操作: 定义统一的分布式缓存应用程序编程接口 ; 执行如下步骤: 接收分布式缓存系统的调用指令,配置所述调用的分布式缓存系统; 根据所述统一的分布式缓存应用程序编程接口,调用所述分布式缓存系统。2.如权利要求1所述的分布式统一缓存实现方法,其特征在于,所述方法还包括:在应用程序代码中通过注解的方式标识需要编辑缓存的位置。3.如权利要求1所述的分布式统一缓存实现方法,其特征在于,所述定义统一的分布式缓存应用程序编程接口包括: 通过自定义代码定义统一的分布式缓存应用程序编程接口。4.如权利要求1-3任一项所述的分布式统一缓存实现方法,其特征在于,所述接收分布式缓存系统的调用指令,配置所述调用的分布式缓存系统包括: 接收分布式缓存系统的调用指令; 根据接收的调用指令,在配置文件中将分布式缓存系统配置成所述调用指令所调用的所述分布式缓存系统。5.如权利要求2所述的分布式统一缓存实现方法,其特征在于,所述在应用程序代码中通过注解的方式标识需要编辑缓存的位置包括: 在应用程序代码中通过注解的方式标识需要增加缓存和/或删除缓存的位置。6.一种分布式统一缓存实现装置,其特征在于,所述装置包括: 接口预定义模块,用于定义统一的分布式缓存应用程序编程接口; 缓存配置模块,用于接收分布式缓存系统的调用指令,配置所述调用的分布式缓存系统; 缓存调用模块,用于根据所述统一的分布式缓存应用程序编程接口,调用所述分布式缓存系统。7.如权利要求6所述的分布式统一缓存实现装置,其特征在于,所述装置还包括: 注解标识模块,用于在应用程序代码中通过注解的方式标识需要编辑缓存的位置。8.如权利要求6所述的分布式统一缓存实现装置,其特征在于,所述接口预定义模块具体用于:通过自定义代码定义统一的分布式缓存应用程序编程接口; 所述缓存配置模块具体用于:接收分布式缓存系统的调用指令;根据接收的调用指令,在配置文件中将分布式缓存系统配置成所述调用指令所调用的所述分布式缓存系统。9.如权利要求7所述的分布式统一缓存实现装置,其特征在于,所述注解标识模块具体用于:在应用程序代码中通过注解的方式标识需要增加缓存和/或删除缓存的位置。10.—种分布式统一缓存系统,其特征在于,所述系统包括权利要求6-9任一项所述的分布式统一缓存实现装置,所述系统中还包括定义好的统一的分布式缓存应用程序编程接□ O
【文档编号】G06F9/44GK105930171SQ201610318119
【公开日】2016年9月7日
【申请日】2016年5月13日
【发明人】谢伟波
【申请人】乐视控股(北京)有限公司, 乐视网信息技术(北京)股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1