一种制造技术

技术编号:39644068 阅读:5 留言:0更新日期:2023-12-09 11:11
本发明专利技术提供了

【技术实现步骤摘要】
一种Redis代理服务实现方法、系统、电子装置及计算机存储介质


[0001]本专利技术涉及代理服务
,具体而言,涉及一种种
Redis
代理服务实现方法

系统

电子装置及计算机存储介质


技术介绍

[0002]一般应用为了更好的性能,会使用
Redis
作为缓存,避免直接操作
I/O
的性能损耗,
Redis
是一个开源

支持网络

基于内存的
key

value(


值对
)
数据库

传统的应用基本是分散部署在各自服务器,每个项目都独立部署
Redis
集群为单独的项目应用服务

在云原生架构成熟推动推动应用服务上云背景下,传统应用使用
Redis
的方式,就暴露出重复建设

管理碎片化

资源浪费不能共享等缺点

[0003]在实际应用中,在云原生环境,集中管理应用服务,需要一个透明的

多租户的

能全局管理分配
Redis
的代理服务,来支持云原生环境的应用服务更容易和更节省资源使用
Redis
作为缓存的功能


技术实现思路

[0004]有鉴于此,本专利技术实施例的目的在于提供具体的
Redis
透明代理服务设计与实现方法,用以解决传统应用在云原生环境
、saas
服务等,在不需要作任何构架改变情况下,也能更好访问和管理
Redis
服务资源问题

[0005]本专利技术的第一方面提供了一种
Redis
代理服务实现方法,所述方法包括:
[0006]S1
,以
TCP
长连接方式连接到
Redis
代理服务端,并通过发出
ping
请求检测应用服务端与
Redis
代理服务端网络连接是否成功;
[0007]S2
,向
Redis
代理服务端发送认证请求报文,并创建第一请求对象,如果认证成功,返回认证成功报文至应用服务端;
[0008]S3
,创建第二请求对象,所述第二请求对象执行透传处理策略,第二请求对象包括任务执行内容;
[0009]基于所述第二请求对象向
Redis
代理服务端发送任务执行请求,以使得
Redis
代理服务端执行任务内容;
[0010]S4
,任务执行完成,
Redis
代理服务端调用解码器构建状态回复对象返回到应用服务端

[0011]进一步,所述
S2
还包括:
[0012]向
Redis
代理服务端发送认证请求报文时,通过编码器创建第一请求对象;所述第一请求对象执行本地处理策略;
[0013]若认证成功,则基于第一请求对象处理认证业务,所述认证业务包括获取认证用户对应租户的
Redis
实例资源

[0014]进一步,所述第二请求对象执行透传处理策略,包括:
[0015]通过上下文选择租户,再选择租户配置的
Redis
实例,根据负载均衡算法选择主
Redis
实例或者从
Redis
实例,并执行所述任务内容分配

执行;
[0016]响应内容到客户端的
I/O worker
线程接收到
Redis
响应的数据报文后,调用解码器,根据报文的类型

长度构造状态回复对象,然后转发到业务线程封装回调任务
callbackTask
,调用回调函数,对返回的数据进行加工处理,再调用
netty

ChannelHandlerContext

writeAndFlush
推送到应用
Redis
客户端的响应

[0017]进一步,所述编码器是基于
RESP
协议执行编码操作;通过编码器创建第一请求对象,包括:
[0018]创建
Request
对象;跳过不符合
RESP
请求格式,跳过空字节;
[0019]确定报文命令个数的值,并保存到
Request
对象的属性

[0020]进一步,所述解码器是基于
RESP
协议执行解码操作;所述调用解码器,根据报文的类型

长度构造状态回复对象,包括:
[0021]通过读取报文的第一个字节,根据所述第一个字节的字符创建不同的回复对象信息;
[0022]根据预设的回复内容映射关系,选择来执行处理;编码解析完成,创建响应对象
RedisResponesCommand
,然后加到输出队列
out.
压到
netty

task
队列,发送到应用服务端

[0023]此外,本专利技术的第二方面提供了一种
Redis
代理服务实现系统
,
所述方法包括:
[0024]连接模块,以
TCP
长连接方式连接到
Redis
代理服务端,并通过发出
ping
请求检测应用服务端与
Redis
代理服务端网络连接是否成功;
[0025]认证模块,向
Redis
代理服务端发送认证请求报文,并创建第一请求对象,如果认证成功,返回认证成功报文至应用服务端;
[0026]执行模块,创建第二请求对象,所述第二请求对象执行透传处理策略,第二请求对象包括任务执行内容;基于所述第二请求对象向
Redis
代理服务端发送任务执行请求,以使得
Redis
代理服务端执行任务内容;
[0027]返回模块,任务执行完成,
Redis
代理服务端调用解码器构建状态回复对象返回到应用服务端

[0028]进一步,所述认证模块还用于,向
Redis
代理服务端发送认证请求报文时,通过编码器创建第一请求对象;所述第一请求对象执行本地处理策略;
[0029]若认证成功,则基于第一请求对象处理认证业务,所述认证业务包括获取认证用户对应租户的
Redis
实例资源

[0030]进一步,所述第二请求对象执行透传处理策本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.
一种
Redis
代理服务实现方法,其特征在于,所述方法包括:
S1
,以
TCP
长连接方式连接到
Redis
代理服务端,并通过发出
ping
请求检测应用服务端与
Redis
代理服务端网络连接是否成功;
S2
,向
Redis
代理服务端发送认证请求报文,并创建第一请求对象,如果认证成功,返回认证成功报文至应用服务端;
S3
,创建第二请求对象,所述第二请求对象执行透传处理策略,第二请求对象包括任务执行内容;基于所述第二请求对象向
Redis
代理服务端发送任务执行请求,以使得
Redis
代理服务端执行任务内容;
S4
,任务执行完成,
Redis
代理服务端调用解码器构建状态回复对象返回到应用服务端
。2.
根据权利要求1所述的
Redis
代理服务实现方法
,
其特征在于,所述
S2
还包括:向
Redis
代理服务端发送认证请求报文时,通过编码器创建第一请求对象;所述第一请求对象执行本地处理策略;若认证成功,则基于第一请求对象处理认证业务,所述认证业务包括获取认证用户对应租户的
Redis
实例资源
。3.
根据权利要求2所述的
Redis
代理服务实现方法
,
其特征在于,所述第二请求对象执行透传处理策略,包括:通过上下文选择租户,再选择租户配置的
Redis
实例,根据负载均衡算法选择主
Redis
实例或者从
Redis
实例,并执行所述任务内容分配

执行;响应内容到客户端的
I/O worker
线程接收到
Redis
响应的数据报文后,调用解码器,根据报文的类型

长度构造状态回复对象,然后转发到业务线程封装回调任务
callbackTask
,调用回调函数,对返回的数据进行加工处理,再调用
netty

ChannelHandlerContext

writeAndFlush
推送到应用
Redis
客户端的响应
。4.
根据权利要求2所述的
Redis
代理服务实现方法
,
其特征在于,所述编码器是基于
RESP
协议执行编码操作;通过编码器创建第一请求对象,包括:创建
Request
对象;跳过不符合
RESP
请求格式,跳过空字节;确定报文命令个数的值,并保存到
Request
对象的属性
。5.
根据权利要求3所述的
Redis
代理服务实现方法
,
其特征在于,所述解码器是基于
RESP
协议执行解码操作;所述调用解码器,根据报文的类型

长度构造状态回复对象,包括:通过读取报文的第一个字节,根据所述第一...

【专利技术属性】
技术研发人员:窦日晓
申请(专利权)人:深圳联友科技有限公司
类型:发明
国别省市:

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

1