基于JAVA注解实现Redis缓存和分布式内存库访问切换的方法技术

技术编号:30684270 阅读:20 留言:0更新日期:2021-11-06 09:16
本发明专利技术公开了一种基于JAVA注解实现Redis缓存和分布式内存库访问切换的方法,包括:增加并自定义用于由Redis缓存切换至分布式内存库的注解@DataSourceSwitch;增加并自定义用于启动注解@DataSourceSwitch的注解@EnableDataSourceSwitching;在业务功能启动时,根据启动类注解判断访问Redis缓存或分布式内存库;若启动类注解为注解@EnableCaching,则启用Redis缓存注解;若启动类注解为注解@EnableDataSourceSwitching,则启用分布式内存库注解@DataSourceSwitch。通过本发明专利技术的技术方案,实现由Redis缓存向分布式内存库的切换,减少了数据库之间的代码版本管理工作量,减少了代码二次开发,丰富了产品使用缓存的方式。使用缓存的方式。使用缓存的方式。

【技术实现步骤摘要】
基于JAVA注解实现Redis缓存和分布式内存库访问切换的方法


[0001]本专利技术涉及数据库
,尤其涉及一种基于JAVA注解实现Redis缓存和分布式内存库访问切换的方法。

技术介绍

[0002]集成定单中心是交易密集型系统,定单量以及对处理效率的要求比较高。为了提升性能,系统加入了缓存技术来提升处理效率,比如常见的缓存技术EHCache、Redis、Conherence、Memcached等。
[0003]关于缓存的使用,Spring Boot提供强大的缓存管理工具Spring Cache,通过@CachePut、@CacheEvict、@Cacheable等注解轻松实现对缓存增、删、改、查的管理。
[0004]由于一些用户在是使用Redis时出现过故障,对于Redis缓存稳定性存在质疑,并且维护缓存数据困难度较大,因此部分客户要求使用分布式内存数据库作为缓存技术使用。分布式内存库是关系型数据库,在使用时并不能和key

value形式的缓存技术一致,Spring Cache目前提供支持都是场景的key

value格式的缓存技术,像EHCache、Redis等,不能实现对分布式内存库这样关系型数据库进行管理。而且现有缓存模块均为产品核心模块,为保证产品核心代码的一致性,不能独立,因此Spring Cache并不能满足需求。

技术实现思路

[0005]针对上述问题,本专利技术提供了一种基于JAVA注解实现Redis缓存和分布式内存库访问切换的方法,通过自定义的注解,在需要访问分布式内存库中数据时通过注解启动,实现由Redis缓存向分布式内存库的切换,通过接口将分布式内存库中的执行结果映射传回,注解方式使用简单、灵活,为其他功能模块数据接入缓存提供方便快捷的方式,减少了不同类型数据库之间的代码版本管理工作量,同时减少了在工程实施中为了支持个性化需求而做的代码二次开发,丰富了产品使用缓存的方式。
[0006]为实现上述目的,本专利技术提供了一种基于JAVA注解实现Redis缓存和分布式内存库访问切换的方法,包括:
[0007]增加并自定义用于由Redis缓存切换至分布式内存库的注解@DataSourceSwitch;
[0008]增加并自定义用于启动所述注解@DataSourceSwitch的注解@EnableDataSourceSwitching;
[0009]在业务功能启动时,根据启动类注解判断访问Redis缓存或分布式内存库;
[0010]若所述启动类注解为注解@EnableCaching,则启用Redis缓存注解,用以访问Redis缓存中的数据;
[0011]若所述启动类注解为所述注解@EnableDataSourceSwitching,则启用分布式内存库注解@DataSourceSwitch,用以访问分布式内存库中的数据。
[0012]在上述技术方案中,优选地,基于JAVA注解实现Redis缓存和分布式内存库访问切
换的方法还包括:
[0013]自定义切面DataSourceSwitchInterceptor;
[0014]则所述启用分布式内存库注解@DataSourceSwitch,用以访问分布式内存库中的数据具体包括:
[0015]根据预设规则对预设切点传入参数进行解析,通过Java反射由传入参数得到解析参数值;
[0016]利用所述分布式内存库的接口执行sql,并通过fastjson将sql执行结果映射至所述切点传入的实体中。
[0017]在上述技术方案中,优选地,所述自定义用于由Redis缓存切换至分布式内存库的注解@DataSourceSwitch具体包括:
[0018]定义所述注解@DataSourceSwitch的访问分布式内存库类型、执行sql的参数、所要执行的sql以及sql执行结果返回类型。
[0019]在上述技术方案中,优选地,所述分布式内存库配置有相应的内存库地址、用户名、密码、连接池类型以及初始化的最小和最大链接数。
[0020]在上述技术方案中,优选地,所述切面和各注解基于spring aop进行自定义。
[0021]与现有技术相比,本专利技术的有益效果为:通过自定义的注解,在需要访问分布式内存库中数据时通过注解启动,实现由Redis缓存向分布式内存库的切换,通过接口将分布式内存库中的执行结果映射传回,注解方式使用简单、灵活,为其他功能模块数据接入缓存提供方便快捷的方式,减少了不同类型数据库之间的代码版本管理工作量,同时减少了在工程实施中为了支持个性化需求而做的代码二次开发,丰富了产品使用缓存的方式。
附图说明
[0022]图1为本专利技术一种实施例公开的基于JAVA注解实现Redis缓存和分布式内存库访问切换的方法的流程示意图。
具体实施方式
[0023]为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术的一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本专利技术保护的范围。
[0024]下面结合附图对本专利技术做进一步的详细描述:
[0025]如图1所示,根据本专利技术提供的一种基于JAVA注解实现Redis缓存和分布式内存库访问切换的方法,包括:
[0026]增加并自定义用于由Redis缓存切换至分布式内存库的注解@DataSourceSwitch;
[0027]增加并自定义用于启动注解@DataSourceSwitch的注解@EnableDataSourceSwitching;
[0028]在业务功能启动时,根据启动类注解判断访问Redis缓存或分布式内存库;
[0029]若启动类注解为注解@EnableCaching,则启用Redis缓存注解,用以访问Redis缓存中的数据;
[0030]若启动类注解为注解@EnableDataSourceSwitching,则启用分布式内存库注解@DataSourceSwitch,用以访问分布式内存库中的数据。
[0031]在该实施例中,优选地,借助Spring的切面功能,基于spring aop自定义注解和切面类,在现有数据访问方法上增加该注解,在需要访问分布式内存库中数据时通过注解启动,实现由Redis缓存向分布式内存库的切换,通过接口将分布式内存库中的执行结果映射传回,实现分布式内存库的查询功能。注解方式使用简单、灵活,为其他功能模块数据接入缓存提供方便快捷的方式,减少了不同类型数据库之间的代码版本管理工作量,同时减少了在工程实施中为了支持个性化需求而做的代码二次开发,丰富了产品使用缓存的方式。
[0032]具体地,上述自定义用于由Redis缓存切换至分布式内存库的注解@DataSourceSw本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于JAVA注解实现Redis缓存和分布式内存库访问切换的方法,其特征在于,包括:增加并自定义用于由Redis缓存切换至分布式内存库的注解@DataSourceSwitch;增加并自定义用于启动所述注解@DataSourceSwitch的注解@EnableDataSourceSwitching;在业务功能启动时,根据启动类注解判断访问Redis缓存或分布式内存库;若所述启动类注解为注解@EnableCaching,则启用Redis缓存注解,用以访问Redis缓存中的数据;若所述启动类注解为所述注解@EnableDataSourceSwitching,则启用分布式内存库注解@DataSourceSwitch,用以访问分布式内存库中的数据。2.根据权利要求1所述的基于JAVA注解实现Redis缓存和分布式内存库访问切换的方法,其特征在于,还包括:自定义切面DataSourceSwitchInterceptor;则所述启用分布式内存库注解@DataSourceSwitch,用以访问分布...

【专利技术属性】
技术研发人员:顾亚东
申请(专利权)人:北京思特奇信息技术股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1