当前位置: 首页 > 专利查询>之江实验室专利>正文

一种redis数据库动态冗余部署方法和装置制造方法及图纸

技术编号:35794831 阅读:18 留言:0更新日期:2022-12-01 14:45
本发明专利技术公开了一种redis数据库动态冗余部署方法和装置,redis数据库的冗余部署,增大了整个系统的广义鲁棒性,符合内生安全领域的拟态架构。同时,本发明专利技术创新性地采用旁路监听和热切换的方式,打破了传统的动态冗余架构需要将输入输出代理嵌入到系统内部的局限性,使得针对redis数据库的异构冗余部署过程对原系统的影响接近了理论上的最小值。并且基于旁路监听和热切换的动态冗余部署,使得各个模块与原系统之间的进程实现完全解耦,既有利于开发、调试、部署和整机测试,也提高了整个系统设计和部署的灵活性,从而使得成本也更加可控。从而使得成本也更加可控。从而使得成本也更加可控。

【技术实现步骤摘要】
一种redis数据库动态冗余部署方法和装置


[0001]本专利技术涉及内生安全数据库
,特别涉及一种redis数据库动态冗余部署方法和装置。

技术介绍

[0002]当前redis数据库技术广泛应用在众多领域当中,例如网络操作系统SONiC就是基于redis数据库构建起来,但当前对redis数据库的应用往往是基于已有的开源项目,数据库的安全性难以保证,针对未知风险的抵御能力也存在欠缺。

技术实现思路

[0003]本专利技术的目的在于提供一种redis数据库动态冗余部署方法和装置,以克服现有技术中的不足。
[0004]为实现上述目的,本专利技术提供如下技术方案:本申请公开了一种redis数据库动态冗余部署方法,所述redis数据库动态冗余部署包括输入输出代理、裁决器和redis服务器,所述redis服务器包括一个系统服务器和两个以上的并行服务器,所述方法具体包括如下步骤:S1、用户通过客户端与所述redis服务器中的系统服务器建立连接,所述输入输出代理监听客户端与系统服务器之间的连接端口,获取系统服务器与客户端之间的交互信息;S2、所述输入输出代理将获取到的交互信息同步到并行服务器当中;S3、当所述输入输出代理从交互信息中检测到数据读取类指令时,从redis服务器中执行读取指令,并将读取到的数据发送给裁决模块进行裁决;S4、所述输入输出代理根据裁决模块的裁决结果和切换策略,决定是否对系统服务器进行热切换,所述热切换为将并行服务器的信息切换到系统服务器中,所述服务器的信息包括数据信息和状态信息
[0005]作为优选,所述动态冗余包括同构动态冗余和异构动态冗余。
[0006]作为优选,步骤S1中所述输入输出代理采用基于操作系统内核中的TCP抓包API实现监听客户端与系统服务器之间的连接端口。
[0007]作为优选,所述步骤S2具体包括如下步骤:S21、输入输出代理中维护一个白名单,根据所述白名单提取需要进行同步的信息,所述信息包括以resp协议的方式进行封装的redis指令;S22、输入输出代理作为客户端与并行服务器建立连接;S23、输入输出代理通过客户端,将以resp协议的方式进行封装的redis命令转发给所述并行服务器,完成同步过程。
[0008]作为优选,所述步骤S4中所述切换策略采用信用分机制,具体操作如下:当系统服务器信用分低于设定值时,从并行服务器中选择信用分最高的一个,将所述信用分最高的
一个并行服务器中的数据和状态信息切换到系统服务器当中。
[0009]作为优选,所述步骤S4中所述热切换基于主从数据库复制来实现,具体包括以下步骤:S41、所述输入输出代理通过redis api,使得当前运行的系统服务器成为并行服务器中信用分最高的服务器的从服务器;S42、系统服务器从所述信用分最高的并行服务器中复制数据;S43、复制完成后,所述输入输出代理通过redis api,使得当前运行的系统服务器从从服务器模式切换回独立的服务器模式运行。
[0010]本申请还公开了一种redis数据库动态冗余部署装置,包括存储器和一个或多个处理器,所述存储器中存储有可执行代码,所述一个或多个处理器执行所述可执行代码时,用于上述的redis数据库动态冗余部署方法。
[0011]本申请还公开了一种计算机可读存储介质,其上存储有程序,该程序被处理器执行时,实现上述的redis数据库动态冗余部署方法。
[0012]本专利技术的有益效果:Redis数据库的冗余部署,增大了整个系统的广义鲁棒性,符合内生安全领域的拟态架构。同时,本专利技术创新性地采用旁路监听和热切换的方式,打破了传统的动态冗余架构需要将输入输出代理嵌入到系统内部的局限性,使得针对redis数据库的异构冗余部署过程对原系统的影响接近了理论上的最小值。并且基于旁路监听和热切换的动态冗余部署,使得各个模块与原系统之间的进程实现完全解耦,既有利于开发、调试、部署和整机测试,也提高了整个系统设计和部署的灵活性,从而使得成本也更加可控。
[0013]本专利技术的特征及优点将通过实施例结合附图进行详细说明。
附图说明
[0014]图1是本专利技术实施例提供的一种redis数据库动态冗余部署方法的流程图。
[0015]图2是整体系统架构示意图。
[0016]图3是本专利技术一种拟态redis数据库的输入输出代理装置的结构图。
具体实施方式
[0017]为使本专利技术的目的、技术方案和优点更加清楚明了,下面通过附图及实施例,对本专利技术进行进一步详细说明。但是应该理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不用于限制本专利技术的范围。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本专利技术的概念。
[0018]参阅图1,本专利技术为一种redis数据库动态冗余部署方法,所述redis数据库动态冗余部署包括输入输出代理、裁决器和三个以上运行的redis服务器,所述三个以上运行的redis服务器包括一个系统服务器和两个以上的并行服务器。
[0019]具体的,参考图2,所述动态冗余包括同构动态冗余和异构动态冗余;所述同构动态冗余是在部署了原生redis数据库服务器的基础上,额外部署两个以上相同版本、相同运行环境的redis服务器;所述异构动态冗余是在部署了原生redis 数据库服务器的基础上,额外部署两个以上不同版本、不同运行环境的redis服务。
[0020]用户客户端和redis系统服务器构成了原生的应用系统,动态冗余的redis并行服务器以及相配套的裁决器、拟态输入输出代理作为系统的一个旁路分支集成到系统当中。
[0021]在一些工业控制场景当中更多得采用同构动态冗余,而在内生安全的拟态架构当中则往往采用异构动态冗余。一般情况下,同构动态冗余稳定性更强、成本较低,但安全性不足;异构动态冗余容易引入系统自扰动,因而稳定性不足,并且由于实现起来复杂所以成本更高,但安全性也更高,抵御未知风险的能力更强。
[0022]本专利技术既支持同构动态冗余场景,也支持异构动态冗余场景。本实施例采用异构动态冗余的方案,从而一般性得包含了同构动态冗余的实现方式。具体的,采用不同基础镜像的容器以及不同版本的redis服务器之间的组合,达到异构的效果。由于redis服务器不仅仅能够在本地运行,也可以通过远程tcp服务来提供相应的功能,因而本实施例的方案也覆盖在不同类型的服务器上运行不同版本的redis的场景。
[0023]所述方法具体包括如下步骤:S1、用户通过客户端与所述动态冗余部署的运行的redis服务器中的系统服务器建立连接,所述输入输出代理监听所述连接端口,获取服务器与客户端之间的交互信息。
[0024]具体的,参考图2,所述redis数据库动态冗余部署包括三个以上运行的redis服务器,所述的三个以上运行的redis服务器包括一个系统服务器和两个以上的并行服务器,所述两个以上的并行服务器构成一个并行服务器池。系统服务器的选取没有特定的规则,开发者可以按照需求或自本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种redis数据库动态冗余部署方法,其特征在于:所述redis数据库动态冗余部署包括输入输出代理、裁决器和redis服务器,所述redis服务器包括一个系统服务器和两个以上的并行服务器,所述方法具体包括如下步骤:S1、用户通过客户端与所述redis服务器中的系统服务器建立连接,所述输入输出代理监听客户端与系统服务器之间的连接端口,获取系统服务器与客户端之间的交互信息;S2、所述输入输出代理将获取到的交互信息同步到并行服务器当中;S3、当所述输入输出代理从交互信息中检测到数据读取类指令时,从redis服务器中执行读取指令,并将读取到的数据发送给裁决模块进行裁决;S4、所述输入输出代理根据裁决模块的裁决结果和切换策略,决定是否对系统服务器进行热切换,所述热切换为将并行服务器的信息切换到系统服务器中,所述服务器的信息包括数据信息和状态信息。2.如权利要求1所述的一种redis数据库动态冗余部署方法,其特征在于,所述动态冗余包括同构动态冗余和异构动态冗余。3.如权利要求1所述的一种redis数据库动态冗余部署方法,其特征在于,步骤S1中所述输入输出代理采用基于操作系统内核中的TCP抓包API实现监听客户端与系统服务器之间的连接端口。4.如权利要求1所述的一种redis数据库动态冗余部署方法,其特征在于,所述步骤S2具体包括如下步骤:S21、输入输出代理中维护一个白名单,根据所述白名单提取需要进行同步的信息,所述信息包括以resp协议的方式进行封装的redis指令;S22、输入输出...

【专利技术属性】
技术研发人员:王培磊张汝云邹涛李顺斌黄培龙
申请(专利权)人:之江实验室
类型:发明
国别省市:

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

1