基于制造技术

技术编号:39656397 阅读:6 留言:0更新日期:2023-12-09 11:25
本发明专利技术实施例提供一种基于

【技术实现步骤摘要】
基于spring框架的redis组件库的生成方法、装置、设备和介质


[0001]本专利技术涉及计算机领域,尤其涉及一种基于
spring
框架的
redis
组件库的生成方法

装置

设备和介质


技术介绍

[0002]随着
NoSQL
的兴起,很多后端应用会结合业务场景使用一些非关系型数据库,其中
redis
是后端开发人员普遍使用到的内存数据库,具有性能高,速度快

通用性强

适用场景丰富等优点

[0003]当前的
Java
平台已经存在一些
redis
客户端框架,比较常用的是
spring cache
框架和
redisson
框架,前者适用于缓存场景,后者适用于分布式锁场景,这些封装起来的框架在实际业务使用时还是有一定的门槛,程序员使用不当甚至还会出现严重的
bug
,另外这些框架主打通用化,还缺少一些真正业务场景上会遇到的特性

[0004]现有技术尚未存在一种既能拥抱主流标准框架,又能弥补业务上直接使用不足的组件库


技术实现思路

[0005]为了解决现有技术中开源的
redis
数据库在实际业务场景中存在使用门槛高,使用不当造成操作效率低甚至导致严重
bug
的技术问题,本专利技术提供一种基于
spring
框架的
redis
组件库的生成方法

[0006]第一方面,本专利技术提供一种基于
spring
框架的
redis
组件库的生成方法,包括:
[0007]按照预设改进规则对
spring data redis
组件,
spring cache
组件和
redisson
组件分别进行改进,以得到
spring data redis
增强组件,
spring cache
增强组件和
redisson
增强组件;
[0008]获取预配置的
redis
工具类;
[0009]根据所述
spring data redis
增强组件,所述
spring cache
增强组件

所述
redisson
增强组件和所述
redis
工具类生成核心模块;
[0010]基于
spring boot starter
规范定义自动装配类,并按照预设顺序进行组装,以得到启动模块;
[0011]将所述核心模块和所述启动模块进行封装,以得到所述基于
spring
框架的
redis
组件库

[0012]进一步的,按照预设改进规则中对
spring data redis
组件进行改进,以得到
spring data redis
增强组件,包括:
[0013]在
redis key
进行序列化时加入应用前缀,以实现对
StringRedisSerializer
的重写;
[0014]使用自定义的
ObjectMapper
实现
json
的序列化,以实现
Jackson2JsonRedisSerializer
的扩展;
[0015]使用自定义的
RedisTemplate
,配置默认
value
序列化器
/hash value
序列化器为自定义的
Json
序列化器,以实现
spring boot
的覆盖

[0016]进一步的,按照预设改进规则对
spring cache
组件进行改进,以得到
spring cache
增强组件,包括:
[0017]根据自定义配置生成缓存配置类对象,以实现
RedisCacheManager
的覆盖;
[0018]通过在业务方法上加上注解
@Cacheable
,从而对所有缓存增加前缀名
cache
,以实现
CacheKeyPrefix
接口的重写及覆盖;
[0019]默认通过冒号拼接多个方法入参,以实现
KeyGenerator
的自定义

[0020]进一步的,按照预设改进规则对
redisson
组件进行改进,以得到
redisson
增强组件,包括:
[0021]基于
AOP
原理创建一个基于注解的切面;
[0022]在
spring
框架上通过
BeanPostProcessor
实现对注解
@RedisLocked
的切入;
[0023]使用所述
redisson
组件中的
RedissonClient
类实现加锁和解锁

[0024]进一步的,所述注解
@RedisLocked
的字段包括以下至少之一:
[0025]所述
redis key
的前缀
storeID、
所述
redis key
的业务前缀
prefix、SpEL
的表达式
expression、
失效时间
expiration
和获取锁的最大等待时间
timeout。
[0026]进一步的,获取预配置的
redis
工具类,包括:
[0027]新增
DefaultRedisKeyService
类,以实现对
redis key
的模糊删除;
[0028]对所述
redis key
进行模糊删除,还包括:
[0029]当处于单机模式时,使用
lua
脚本实现所述
redis key
的检索和删除;
[0030]当处于集群模式,使用
RedisTemplate
类批量查询
key
,并对批量查询的
key
进行删除,再逐一查询剩余的
key
,并对剩余的
key
进行删除,直到所有满足条件的
key
全部删除为止

[0031]进一步的,基于本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.
一种基于
spring
框架的
redis
组件库的生成方法,其特征在于,包括:按照预设改进规则对
spring data redis
组件,
spring cache
组件和
redisson
组件分别进行改进,以得到
spring data redis
增强组件,
spring cache
增强组件和
redisson
增强组件;获取预配置的
redis
工具类;根据所述
spring data redis
增强组件,所述
spring cache
增强组件

所述
redisson
增强组件和所述
redis
工具类生成核心模块;基于
spring boot starter
规范定义自动装配类,并按照预设顺序进行组装,以得到启动模块;将所述核心模块和所述启动模块进行封装,以得到所述基于
spring
框架的
redis
组件库
。2.
根据权利要求1所述的方法,其特征在于,按照预设改进规则中对
spring data redis
组件进行改进,以得到
spring data redis
增强组件,包括:在
redis key
进行序列化时加入应用前缀,以实现对
StringRedisSerializer
的重写;使用自定义的
ObjectMapper
实现
json
的序列化,以实现
Jackson2JsonRedisSerializer
的扩展;使用自定义的
RedisTemplate
,配置默认
value
序列化器
/hash value
序列化器为自定义的
Json
序列化器,以实现
spring boot
的覆盖
。3.
根据权利要求1所述的方法,其特征在于,按照预设改进规则对
spring cache
组件进行改进,以得到
spring cache
增强组件,包括:根据自定义配置生成缓存配置类对象,以实现
RedisCacheManager
的覆盖;通过在业务方法上加上注解
@Cacheable
,从而对所有缓存增加前缀名
cache
,以实现
CacheKeyPrefix
接口的重写及覆盖;默认通过冒号拼接多个方法入参,以实现
KeyGenerator
的自定义
。4.
根据权利要求1所述的方法,其特征在于,按照预设改进规则对
redisson
组件进行改进,以得到
redisson
增强组件,包括:基于
AOP
原理创建一个基于注解的切面;在
spring
框架上通过
BeanPostProcessor
实现对注解
@RedisLocked
的切入;使用所述
redisson
组件中的
RedissonClient
类实现加锁和解锁
。5.
根据权利要求4所述的方法,其特征在于,所述注解
@RedisLocked
的字段包括以下至少之一:所述
redis key
的前缀
storeID、
所述
...

【专利技术属性】
技术研发人员:孙康康沈贵斌周波
申请(专利权)人:浙江惠瀜网络科技有限公司
类型:发明
国别省市:

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

1