一种redis服务节点的配置升级方法及装置转让专利

申请号 : CN202210029517.8

文献号 : CN114047941B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 陈实赵增义张益军王金明

申请人 : 飞狐信息技术(天津)有限公司

摘要 :

本申请实施例提供了一种redis服务节点的配置升级方法及装置。其中,该方法包括:从待处理集群中筛选出目标节点,对目标节点的配置项进行热配置修改;若热配置修改成功,则确定目标节点的配置项为热配置,对待处理集群中的所有节点的配置项执行热配置修改;若热配置修改失败,且该目标节点的配置项不支持热配置修改,则确定目标节点的配置项为冷配置;对待处理集群中的所有节点进行分组,对分组之后的各个节点对应的配置文件进行冷配置修改,根据集群重启算法对分组后的各个节点进行重启。本申请实施例能够针对大规模集群提供快速高效的运维操作,降低了redis服务节点的配置升级的运维成本。

权利要求 :

1.一种redis服务节点的配置升级方法,其特征在于,包括:接收配置项修改请求;

查询所述配置项修改请求是否在支持配置项的白名单中,若是,则从待处理集群中筛选出目标节点,对所述目标节点的配置项进行热配置修改;

若所述热配置修改成功,则确定所述目标节点的配置项为热配置,对所述待处理集群中的所有节点的配置项执行所述热配置修改,并将所述待处理集群下的所有节点的配置项写入所述所有节点对应的配置文件中;所述待处理集群中的所有节点,包括:所述目标节点;

若所述热配置修改失败,则确定所述目标节点的配置项中的配置值为非法配置值或所述目标节点的配置项不支持所述热配置修改,若所述目标节点的配置项中的配置值为非法配置值,结束对所述目标节点的配置项的热配置修改;若所述目标节点的配置项不支持所述热配置修改,则确定所述目标节点的配置项为冷配置;

当所述目标节点的配置项为冷配置时,对所述待处理集群中的所有节点进行分组,对分组之后的各个节点对应的配置文件进行冷配置修改;

在所述冷配置修改之后,根据集群重启算法对分组后的各个节点进行重启。

2.根据权利要求1所述的方法,其特征在于,所述对分组之后的各个节点对应的配置文件进行冷配置修改之前,还包括:从预设的目标测试集群中筛选出目标测试节点,对所述目标测试节点对应的配置文件进行冷配置修改,并对所述目标测试节点进行重启;若所述重启失败,结束本次修改;

若所述重启成功,触发执行如下步骤:对分组之后的各个节点对应的配置文件进行冷配置修改;在所述冷配置修改之后,根据集群重启算法对分组后的各个节点进行重启;其中,所述预设的目标测试集群支持的配置项的范围大于或等于待处理集群支持的配置项的范围。

3.根据权利要求1所述的方法,其特征在于,所有节点包括:主节点、从节点;所述对所述待处理集群中的各个节点进行分组,包括:查询所述待处理集群中的主从节点关系信息;

根据所述主从节点关系信息,对所有节点进行分组,得到多个主从节点分组,所述主从节点分组中包括一个主节点和对应多个从节点;

为每个所述主从节点分组添加主从节点标志位;

所述对分组之后的各个节点对应的配置文件进行冷配置修改,包括:根据所述主从节点标志位,对分组之后的各个节点对应的配置文件进行冷配置修改;

所述根据集群重启算法对分组后的各个节点进行重启,包括:根据所述主从节点标志位,对分组后的各个节点进行重启。

4.根据权利要求3所述的方法,其特征在于,所述为每个所述主从节点分组添加主从节点标志位,包括:

判断所述待处理集群中当前的主从节点分组中是否存在指定修改节点;

若待处理集群中主从节点分组中存在指定修改节点,确定所述主从节点标志位用于指示所述指定修改节点为主从节点、或主节点、或从节点;

若待处理集群中主从节点分组中不存在指定修改节点,确定所述主从节点标志位指示所述主从节点分组中不存在所述指定修改节点。

5.根据权利要求4所述的方法,其特征在于,所述根据所述主从节点标志位,对分组之后的各个节点对应的配置文件进行冷配置修改,包括:当所述主从节点标志位指示所述指定修改节点为主从节点时,对从节点对应的配置文件进行冷配置修改,对主节点对应的配置文件进行冷配置修改;

当所述主从节点标志位指示所述指定修改节点为主节点时,对所述主节点对应的配置文件进行冷配置修改;当所述主从节点标志位指示所述指定修改节点为从节点时,对所述从节点对应的配置文件进行冷配置修改;

当所述主从节点标志位指示所述主从节点分组中不存在所述指定修改节点时,则进行下一个主从节点分组的判断。

6.根据权利要求4所述的方法,其特征在于,所述根据所述主从节点标志位,对分组后的各个节点进行重启,包括:

当所述主从节点标志位指示所述指定修改节点为主从节点时,对从节点进行重启,在所述从节点进行重启之后,对主节点进行重启;

当所述主从节点标志位指示所述指定修改节点为从节点时,对所述从节点进行重启;

当所述主从节点标志位指示所述指定修改节点为主节点时,则从当前主从节点分组中选取备用从节点,当所述备用从节点与所述主节点连接正常,将备用从节点替换为主节点,在所述备用从节点替换为主节点成功后,对替换之前的主节点进行重启;

当所述主从节点标志位指示所述主从节点分组中不存在所述指定修改节点,结束当前主从节点分组的重启。

7.一种redis服务节点的配置升级装置,其特征在于,包括:接收模块,用于接收配置项修改请求;

第一查询模块,用于查询所述配置项修改请求是否在支持配置项的白名单中,若是,则从待处理集群中筛选出目标节点,对所述目标节点的配置项进行热配置修改;

热配置修改模块,用于若所述热配置修改成功,则确定所述目标节点的配置项为热配置,对所述待处理集群中的所有节点的配置项执行所述热配置修改,并将所述待处理集群下的所有节点的配置项写入配置文件中;所述待处理集群中的所有节点,包括:所述目标节点;

第一判断模块,用于若所述对所述目标节点的配置项进行热配置修改失败,则确定所述目标节点的配置项中的配置值为非法配置值或所述目标节点的配置项不支持所述热配置修改,若所述目标节点的配置项中的配置值为非法配置值,结束对目标节点的配置项的修改;若所述目标节点的配置项不支持所述热配置修改,则确定所述目标节点的配置项为冷配置;

冷配置修改模块,用于当所述目标节点的配置项为冷配置时,对所述待处理集群中的所有节点进行分组,对分组之后的各个节点对应的配置文件进行冷配置修改;

重启模块,用于在所述配置文件进行冷配置修改之后,根据集群重启算法对分组后的各个节点进行重启。

8.根据权利要求7所述的装置,其特征在于,还包括:第二查询模块,用于查询所述待处理集群中的主从节点关系信息;

分组模块,用于根据所述主从节点关系信息,对所有节点进行分组,得到多个主从节点分组,所述主从节点分组中包括一个主节点和对应多个从节点;

添加模块,用于为每个所述主从节点分组添加主从节点标志位;

所述冷配置修改模块,具体用于根据所述主从节点标志位,对分组之后的各个节点对应的配置文件进行冷配置修改;

所述重启模块,具体用于根据所述主从节点标志位,对分组后的各个节点进行重启。

9.根据权利要求8所述的装置,其特征在于,所述添加模块包括:第二判断模块,用于判断所述待处理集群中当前的主从节点分组中是否存在指定修改节点;

第一指示模块,用于若待处理集群中主从节点分组中存在指定修改节点,确定所述主从节点标志位用于指示所述指定修改节点为主从节点、或主节点、或从节点;

第二指示模块,用于若待处理集群中主从节点分组中不存在指定修改节点,确定所述主从节点标志位指示所述主从节点分组中不存在所述指定修改节点。

10.一种存储介质,其特征在于,所述存储介质上存储有程序,所述程序被处理器执行时实现权利要求1至6中任一项所述方法。

说明书 :

一种redis服务节点的配置升级方法及装置

技术领域

[0001] 本申请涉及服务配置升级领域,尤其涉及一种redis服务节点的配置升级方法及装置。

背景技术

[0002] 随着redis服务在企业使用越来越多,使用场景越来越广,对redis服务节点的实时快速修改有着更高的要求。
[0003] 目前,在现有技术中,对redis服务节点的升级采用人工逐个访问redis服务,连接redis服务对节点进行修改,并在某些情况下,需要对修改后的节点进行重启,该方式操作
繁琐,十分耗时。并且,采用人工升级的方式,任何一个环节出现问题,可能会导致redis服
务不可用。因此,急需一种集中化管理流程对redis服务节点进行管理操作,降低redis服务
节点的配置升级的运维成本。

发明内容

[0004] 有鉴于此,本申请提供了一种redis服务节点的配置升级方法及装置,能够针对大规模集群提供快速高效的运维操作,解决了redis服务节点的升级的运维难点,降低了
redis服务节点的升级的运维成本。
[0005] 第一方面,本申请提供了一种redis服务节点的配置升级方法,包括:
[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] 当所述主从节点标志位指示所述主从节点分组中不存在所述指定修改节点时,结束当前主从节点分组的重启。
[0034] 第二方面,本申请提供了一种redis服务节点的配置升级装置,包括:
[0035] 接收模块,用于接收配置项修改请求;
[0036] 第一查询模块,用于查询所述配置项修改请求是否在支持配置项的白名单中,若是,则从待处理集群中筛选出目标节点,对所述目标节点的配置项进行热配置修改;
[0037] 热配置修改模块,用于若所述热配置修改成功,则确定所述目标节点的配置项为热配置,对所述待处理集群中的所有节点的配置项执行所述热配置修改,并将所述待处理
集群下的所有节点的配置项写入配置文件中;所述待处理集群中的所有节点,包括:所述目
标节点;
[0038] 第一判断模块,用于若所述对所述目标节点的配置项进行热配置修改失败,则确定所述目标节点的配置项中的配置值为非法配置值或所述目标节点的配置项不支持所述
热配置修改,若所述目标节点的配置项中的配置值为非法配置值,结束对目标节点的配置
项的修改;若所述目标节点的配置项不支持所述热配置修改,则确定所述目标节点的配置
项为冷配置;
[0039] 冷配置修改模块,用于当所述目标节点的配置项为冷配置时,对所述待处理集群中的所有节点进行分组,对分组之后的各个节点对应的配置文件进行冷配置修改;
[0040] 重启模块,用于在所述配置文件进行冷配置修改之后,根据集群重启算法对分组后的各个节点进行重启。
[0041] 优选地,所述装置,还包括:
[0042] 第二查询模块,用于查询所述待处理集群中的主从节点关系信息;
[0043] 分组模块,用于根据所述主从节点关系信息,对所有节点进行分组,得到多个主从节点分组,所述主从节点分组中包括一个主节点和对应多个从节点;
[0044] 添加模块,用于为每个所述主从节点分组添加主从节点标志位;
[0045] 所述冷配置修改模块,具体用于根据所述主从节点标志位,对分组之后的各个节点对应的配置文件进行冷配置修改;
[0046] 所述重启模块,具体用于根据所述主从节点标志位,对分组后的各个节点进行重启。
[0047] 优选地,所述添加模块包括:
[0048] 第二判断模块,用于判断所述待处理集群中当前的主从节点分组中是否存在指定修改节点;
[0049] 第一指示模块,用于若待处理集群中主从节点分组中存在指定修改节点,确定所述主从节点标志位用于指示所述指定修改节点为主从节点、或主节点、或从节点;
[0050] 第二指示模块,用于若待处理集群中主从节点分组中不存在指定修改节点,确定所述主从节点标志位指示所述主从节点分组中不存在所述指定修改节点。
[0051] 第三方面,本申请提供了一种存储介质,所述存储介质上存储有程序,所述程序被处理器执行时实现以上任意一项所述方法。
[0052] 从上述技术方案可以看出,本申请提供了一种redis服务节点的配置升级方法,包括:接收配置项修改请求;查询所述配置项修改请求是否在支持配置项的白名单中,若是,
则从待处理集群中筛选出目标节点,对所述目标节点的配置项进行热配置修改;若所述热
配置修改成功,则确定所述目标节点的配置项为热配置,对所述待处理集群中的所有节点
的配置项执行所述热配置修改,并将所述待处理集群下的所有节点的配置项写入所述所有
节点对应的配置文件中;所述待处理集群中的所有节点,包括:所述目标节点;若所述热配
置修改失败,则确定所述目标节点的配置项中的配置值为非法配置值或所述目标节点的配
置项不支持所述热配置修改,若所述目标节点的配置项中的配置值为非法配置值,结束对
所述目标节点的配置项的热配置修改;若所述目标节点的配置项不支持所述热配置修改,
则确定所述目标节点的配置项为冷配置;当所述目标节点的配置项为冷配置时,对所述待
处理集群中的所有节点进行分组,对分组之后的各个节点对应的配置文件进行冷配置修
改;在所述冷配置修改之后,根据集群重启算法对分组后的各个节点进行重启。本申请实施
例能够针对大规模集群提供快速高效的运维操作,降低了redis服务节点的配置升级的运
维成本,而且在修改的过程中,集群服务依然可用。

附图说明

[0053] 为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本
申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以
根据这些附图获得其他的附图。
[0054] 图1为本申请公开的一种redis服务节点的配置升级方法实施例1的流程图;
[0055] 图2为本申请公开的一种redis服务节点的配置升级方法实施例2的流程图;
[0056] 图3为本申请公开的一种redis服务节点的配置升级装置的结构示意图。

具体实施方式

[0057] 下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于
本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他
实施例,都属于本申请保护的范围。
[0058] 如图1所示,为本申请公开的一种redis服务节点的配置升级方法实施例1的流程图,本申请实施例提供的redis服务节点的配置升级方法具体应用于节点配置升级装置,该
节点配置升级装置用于对redis服务中的各个节点进行配置升级。
[0059] 所述节点的升级方法,包括:
[0060] S101、接收配置项修改请求。
[0061] 具体地,由节点配置升级装置接收配置项修改请求,该请求由redis服务运维人员发送,用于对redis服务中的各个节点的配置项进行修改。
[0062] S102、查询所述配置项修改请求是否在支持配置项的白名单中,若是,则从待处理集群中筛选出目标节点,对所述目标节点的配置项进行热配置修改。
[0063] 本申请实施例中,在接收到配置项修改请求之后,根据该配置项修改请求对应的redis服务版本查出其支持配置项的白名单,如果该配置项修改请求不在白名单中,则将进
行拦截。
[0064] 当该配置项修改请求在白名单中,则从待处理集群中筛选出目标节点,对所述目标节点的配置项进行热配置修改。其中,所述热配置修改具体为,调用redis命令中config 
set对目标节点的配置项进行修改。
[0065] S103、若所述热配置修改成功,则确定所述目标节点的配置项为热配置,对所述待处理集群中的所有节点的配置项执行所述热配置修改,并将所述待处理集群下的所有节点
的配置项写入所述所有节点对应的配置文件中;所述待处理集群中的所有节点,包括:所述
目标节点。
[0066] 具体地,当对所述目标节点的配置项进行热配置修改成功之后,则说明该目标节点的配置项为热配置,并对所述待处理集群中的所有节点的配置项执行所述热配置修改,
并将所述待处理集群下的所有节点的配置项写入配置文件中。
[0067] 需要说明的是,对待处理集群的所有节点的配置项执行热配置修改时,无需将待处理集群进行重启,但是修改后的配置项尚未写入到配置文件中,因此,需调用redis命令
中config rewrite将配置项写入到配置文件中。
[0068] S104、若所述热配置修改失败,则确定所述目标节点的配置项中的配置值为非法配置值或所述目标节点的配置项不支持所述热配置修改,若所述目标节点的配置项中的配
置值为非法配置值,结束对所述目标节点的配置项的热配置修改;若所述目标节点的配置
项不支持所述热配置修改,则确定所述目标节点的配置项为冷配置。
[0069] 具体地,当对所述目标节点的配置项进行热配置修改失败后,则确定所述目标节点的配置项中的配置值为非法配置值或所述目标节点的配置项不支持所述热配置修改,若
所述目标节点的配置项中的配置值为非法配置值,结束对目标节点的配置项的修改。
[0070] 若所述目标节点的配置项不支持所述热配置修改,则可确定所述目标节点的配置项为冷配置。
[0071] 需要说明的是,redis命令并不支持对所述目标节点的配置项的修改,redis命令执行时会报异常,该步骤可区分目标节点的配置项为热配置还是冷配置,从而解决了redis
服务节点的配置升级的不便,和某些配置无法通过redis命令修改的问题。
[0072] S105、当所述目标节点的配置项为冷配置时,对所述待处理集群中的所有节点进行分组,对分组之后的各个节点对应的配置文件进行冷配置修改。
[0073] 具体地,当所述目标节点的配置项为冷配置时,对所述待处理集群中各个节点进行分组,并对分组之后的各个节点对应的配置文件进行冷配置修改。
[0074] 当所述目标节点的配置项为冷配置时,此时通过shell命令对目标节点对应的配置文件进行修改,redis命令并不支持对所述目标节点的配置项的修改。
[0075] S106、在所述冷配置修改之后,根据集群重启算法对分组后的各个节点进行重启。
[0076] 具体地,在所述配置文件进行冷配置修改之后,需要根据集群重启算法对各个节点进行重启。这是因为,对配置文件进行冷配置修改之后,此时该修改尚未生效,需要根据
集群重启算法对各个节点进行重启,完成对待处理集群的配置文件的修改。
[0077] 需要说明的是,在重启的过程中,集群服务依然可用。
[0078] 从上述技术方案可以看出,本申请提供了一种redis服务节点的配置升级方法,包括:接收配置项修改请求;查询所述配置项修改请求是否在支持配置项的白名单中,若是,
则从待处理集群中筛选出目标节点,对所述目标节点的配置项进行热配置修改;若所述热
配置修改成功,则确定所述目标节点的配置项为热配置,对所述待处理集群中的所有节点
的配置项执行所述热配置修改,并将所述待处理集群下的所有节点的配置项写入所述所有
节点对应的配置文件中;所述待处理集群中的所有节点,包括:所述目标节点;若所述热配
置修改失败,则确定所述目标节点的配置项中的配置值为非法配置值或所述目标节点的配
置项不支持所述热配置修改,若所述目标节点的配置项中的配置值为非法配置值,结束对
所述目标节点的配置项的热配置修改;若所述目标节点的配置项不支持所述热配置修改,
则确定所述目标节点的配置项为冷配置;当所述目标节点的配置项为冷配置时,对所述待
处理集群中的所有节点进行分组,对分组之后的各个节点对应的配置文件进行冷配置修
改;在所述冷配置修改之后,根据集群重启算法对分组后的各个节点进行重启。本申请实施
例能够针对大规模集群提供快速高效的运维操作,降低了redis服务节点的配置升级的运
维成本,而且在修改的过程中,集群服务依然可用。
[0079] 可选的,在上述实施例的基础上,参照图2,对分组之后的各个节点对应的配置文件进行冷配置修改之前,还包括:
[0080] S201、从预设的目标测试集群中筛选出目标测试节点,对所述目标测试节点对应的配置文件进行冷配置修改,并对所述目标测试节点进行重启;若所述重启失败,结束本次
修改;
[0081] S202、若所述重启成功,触发执行如下步骤:对分组之后的各个节点对应的配置文件进行冷配置修改;在所述冷配置修改之后,根据集群重启算法对分组后的各个节点进行
重启;其中,所述预设的目标测试集群支持的配置项的范围大于或等于待处理集群支持的
配置项的范围。
[0082] 需要说明的是,为了防止通过redis中的shell命令将待处理集群的配置文件修改之后,重启服务失败,才发现待处理集群的配置文件的配置值有误,因此,通过预先设置的
目标测试集群,对预设的目标测试集群中筛选出目标测试节点,对所述目标从节点的配置
文件进行冷配置修改,并进行重启,当重启成功时,说明待处理集群的配置文件的配置值正
确,这样一来,可减少待处理集群的重启次数。在同一版本的redis服务集群中,在预设的目
标测试集群中修改配置能够成功,那么在待处理的集群中修改配置也能够成功。其中,所述
预设的目标测试集群支持的配置项的范围大于或等于待处理集群支持的配置项的范围。
[0083] 另外,也可以直接从待处理集群中筛选出一从节点,通过对该从节点对应的配置文件进行冷配置修改之后,进行重启,若重启成功,则说明待处理集群的配置文件的配置值
正确。
[0084] 可选的,在上述任一实施例的基础上,所有节点包括:主节点、从节点;所述对所述待处理集群中的各个节点进行分组,包括:
[0085] 查询所述待处理集群中的主从节点关系信息;
[0086] 根据所述主从节点关系信息,对所有节点进行分组,得到多个主从节点分组,所述主从节点分组中包括一个主节点和对应多个从节点;
[0087] 为每个所述主从节点分组添加主从节点标志位;
[0088] 所述对分组之后的各个节点对应的配置文件进行冷配置修改,包括:根据所述主从节点标志位,对分组之后的各个节点对应的配置文件进行冷配置修改;
[0089] 所述根据集群重启算法对分组后的各个节点进行重启,包括:根据所述主从节点标志位,对分组后的各个节点进行重启。
[0090] 具体地,本申请实施例中,首先查询待处理集群中的主从节点关系信息,根据该主从节点关系信息,对待处理集群中的所有节点进行分组,从而得到多个主从节点分组,其
中,每个主从节点分组包括一个主节点和多个与该主节点对应的从节点。并为每个主从节
点分组添加主从节点标志位,该主从节点标志位可以用于指示主从节点分组的节点信息,
以便后续利用主从节点标志位对分组之后的各个节点对应的配置文件进行冷配置修改以
及对分组后的各个节点进行重启。
[0091] 本申请实施例中通过查询所述待处理集群中各个节点信息以及主从节点关系信息,从而确定出所述待处理集群中各个主节点和各个从节点,并根据主节点对各个节点进
行分组,从而得到多个主从节点分组,并为每个所述主从节点分组添加主从节点标志位,根
据所述主从节点标志位,对分组之后的各个节点对应的配置文件进行冷配置修改,根据所
述主从节点标志位,对分组后的各个节点进行重启,能够针对大规模集群提供快速高效的
运维操作,降低了redis服务节点的配置升级的运维成本。
[0092] 可选的,在上述任一实施例的基础上,所述为每个所述主从节点分组添加主从节点标志位,包括:
[0093] 判断所述待处理集群中当前的主从节点分组中是否存在指定修改节点;
[0094] 具体的,本申请实施例中,当待处理集群中主从节点分组存在指定修改节点,该指定修改节点可能存在多个,通过遍历该主从节点分组,从而确定出该主从节点分组所包含
的指定修改节点信息,主从节点标志位用于指示当前的主从节点分组中指定修改节点包含
的节点信息,具体地,主从节点标志位用于指示所述指定修改节点为主从节点、或主节点、
或从节点。
[0095] 若待处理集群中主从节点分组中存在指定修改节点,确定所述主从节点标志位用于指示所述指定修改节点为主从节点、或主节点、或从节点;
[0096] 若待处理集群中主从节点分组中不存在指定修改节点,确定所述主从节点标志位指示所述主从节点分组中不存在所述指定修改节点。
[0097] 具体的,本申请实施例中,当待处理集群中主从节点分组不存在指定修改节点,则遍历该主从节点分组,确定出该主从节点分组中的主节点,及其对应的所有从节点。其中,
所述主从节点标志位指示所述主从节点分组中不存在指定修改节点。
[0098] 可选的,在上述任一实施例的基础上,所述根据所述主从节点标志位,对分组之后的各个节点对应的配置文件进行冷配置修改,包括:
[0099] 当所述主从节点标志位指示所述指定修改节点为主从节点时,对从节点对应的配置文件进行冷配置修改,对主节点对应的配置文件进行冷配置修改;
[0100] 当所述主从节点标志位指示所述指定修改节点为主节点时,对所述主节点对应的配置文件进行冷配置修改;
[0101] 当所述主从节点标志位指示所述指定修改节点为从节点时,对所述从节点对应的配置文件进行冷配置修改;
[0102] 当所述主从节点标志位指示所述主从节点分组中不存在所述指定修改节点时,则进行下一个主从节点分组的判断。
[0103] 具体地,本申请实施例中,当所述主从节点标志位指示所述指定修改节点为主从节点时,首先对从节点对应的配置文件进行冷配置修改,在对从节点对应的配置文件进行
冷配置修改之后,对主节点对应的配置文件进行冷配置修改。当所述主从节点标志位指示
所述指定修改节点为主节点时,对所述主节点对应的配置文件进行冷配置修改,当所述主
从节点标志位指示所述指定修改节点为从节点时,对所述从节点对应的配置文件进行冷配
置修改当所述主从节点标志位指示所述主从节点分组中不存在所述指定修改节点时,则进
行下一个主从节点分组的判断。
[0104] 需要说明的是,当待处理集群中的主从节点分组中不存在指定修改节点时,则默认对各个主从节点分组中的所有节点对应的配置文件进行冷配置修改。
[0105] 需要说明的是,所述冷配置修改具体为通过shell命令对配置文件进行修改。
[0106] 本申请实施例中,通过主从节点标志位指示的指定修改节点的信息,从而确定出对哪些节点进行修改,实现快速对待处理集群的修改,而且,在修改的过程中,集群服务依
然可用。
[0107] 可选的,在上述任一实施例的基础上,所述根据所述主从节点标志位,对分组后的各个节点进行重启,包括:
[0108] 当所述主从节点标志位指示所述指定修改节点为主从节点时,对从节点进行重启,在所述从节点进行重启之后,对主节点进行重启。
[0109] 当所述主从节点标志位指示所述指定修改节点为从节点时,对所述从节点进行重启;
[0110] 当所述主从节点标志位指示所述指定修改节点为主节点时,则从当前主从节点分组中选取备用从节点,当所述备用从节点与所述主节点连接正常,将备用从节点替换为主
节点,在所述备用从节点替换为主节点成功后,对替换之前的主节点进行重启;
[0111] 当所述主从节点标志位指示所述主从节点分组中不存在所述指定修改节点时,结束当前主从节点分组的重启。
[0112] 具体地,本申请实施例中,当所述主从节点标志位指示所述指定修改节点为主从节点时,对从节点进行重启,在所述从节点进行重启之后,首先判断该从节点是否与主节点
连接正常,若正常,则先对该从节点进行failover操作(在集群中,将从节点变更为主节点
的操作,该操作执行之后,所述从节点将变更为主节点),执行成功后,对替换之前的主节点
进行重启,在所述替换之前的主节点进行重启成功之后,如果不允许主从节点角色切换,则
对所述替换之前主节点进行换主操作,以保证在重启的过程中,集群服务依然可用。这是因
为,若在当前主从节点分组中直接重启主节点,会导致当前主从节点分组中没有存活的主
节点,造成待处理集群服务异常。
[0113] 当所述主从节点标志位指示所述指定修改节点为从节点时,对所述从节点进行重启。
[0114] 当所述主从节点标志位指示所述指定修改节点为主节点时,则从当前主从节点分组中选取备用从节点,当所述备用从节点与所述主节点连接正常,将备用从节点替换为主
节点,在所述备用从节点替换为主节点成功后,对替换之前的主节点进行重启。
[0115] 需要说明的是,当待处理集群中的主从节点分组中不存在指定修改节点时,则默认对各个主从节点分组中的所有节点对应的配置文件进行冷配置修改之后,进行重启。
[0116] 需要说明的是,若在当前主从节点分组中指定修改节点只有主节点且没有从节点,如果直接重启该主节点,导致当前主从节点分组中没有存活的主节点,造成待处理集群
服务异常。因此,从当前主从节点分组中筛选出一备用从节点,判断该备用从节点与所述主
节点是否连接正常,若连接正常,则将备用从节点进行failover操作(在集群中,将从节点
变更为主节点的操作,该操作执行之后,所述从节点将变更为主节点),执行成功后,对替换
之前的主节点(原来的主节点,现在可视为从节点)进行重启。在所述替换之前的主节点进
行重启成功之后,如果不允许主从节点角色切换,则对所述替换之前主节点进行换主操作,
以保证在重启的过程中,集群服务依然可用。针对上述操作,一旦某一步失败,则结束当前
主从节点分组的重启,并记录重启失败的原因。
[0117] 需要说明的是,若运维人员不需要对redis服务节点的配置项进行修改,只对待处理集群进行重启,此时,只需要利用对所述待处理集群中的所有节点进行分组,为每个所述
主从节点分组添加主从节点标志位;判断所述待处理集群中当前的主从节点分组中是否存
在指定修改节点;若待处理集群中主从节点分组中存在指定修改节点,确定所述主从节点
标志位用于指示所述指定修改节点为主从节点、或主节点、或从节点;若待处理集群中主从
节点分组中不存在指定修改节点,确定所述主从节点标志位指示所述主从节点分组中不存
在所述指定修改节点,根据所述主从节点标志位,对分组后的各个节点进行重启。
[0118] 本申请实施例中,从待处理集群中筛选出目标节点,对目标节点的配置项进行热配置修改;若热配置修改成功,则确定目标节点的配置项为热配置,对待处理集群中的所有
节点的配置项执行热配置修改;若热配置修改失败,且所述目标节点的配置项不支持所述
热配置修改,则确定目标节点的配置项为冷配置;对待处理集群中的所有节点进行分组,对
分组之后的各个节点对应的配置文件进行冷配置修改,根据集群重启算法对分组后的各个
节点进行重启。本申请实施例能够针对大规模集群提供快速高效的运维操作,降低了redis
服务的节点的配置升级的运维成本。而且在修改的过程中,集群服务依然可用。
[0119] 如图3所示,为本申请公开的一种redis服务节点的配置升级装置的结构示意图,包括:
[0120] 接收模块100,用于接收配置项修改请求;
[0121] 第一查询模块200,用于查询所述配置项修改请求是否在支持配置项的白名单中,若是,则从待处理集群中筛选出目标节点,对所述目标节点的配置项进行热配置修改;
[0122] 热配置修改模块300,用于若所述热配置修改成功,则确定所述目标节点的配置项为热配置,对所述待处理集群中的所有节点的配置项执行所述热配置修改,并将所述待处
理集群下的所有节点的配置项写入配置文件中;所述待处理集群中的所有节点,包括:所述
目标节点;
[0123] 第一判断模块400,用于若所述对所述目标节点的配置项进行热配置修改失败,则确定所述目标节点的配置项中的配置值为非法配置值或所述目标节点的配置项不支持所
述热配置修改,若所述目标节点的配置项中的配置值为非法配置值,结束对目标节点的配
置项的修改;若所述目标节点的配置项不支持所述热配置修改,则确定所述目标节点的配
置项为冷配置;
[0124] 冷配置修改模块500,用于当所述目标节点的配置项为冷配置时,对所述待处理集群中的所有节点进行分组,对分组之后的各个节点对应的配置文件进行冷配置修改;
[0125] 重启模块600,用于在所述配置文件进行冷配置修改之后,根据集群重启算法对分组后的各个节点进行重启。本申请实施例还提供了一种存储介质,所述存储介质上存储有
程序,所述程序被处理器执行时实现所述redis服务配置修改方法。
[0126] 可选的,所述节点的升级装置,还包括:
[0127] 第二查询模块,用于查询所述待处理集群中的主从节点关系信息;
[0128] 分组模块,用于根据所述主从节点关系信息,对所有节点进行分组,得到多个主从节点分组,所述主从节点分组中包括一个主节点和对应多个从节点;
[0129] 添加模块,用于为每个所述主从节点分组添加主从节点标志位;
[0130] 所述冷配置修改模块,具体用于根据所述主从节点标志位,对分组之后的各个节点对应的配置文件进行冷配置修改;
[0131] 所述重启模块,具体用于根据所述主从节点标志位,对分组后的各个节点进行重启。
[0132] 可选地,所述添加模块包括:
[0133] 第二判断模块,用于判断所述待处理集群中当前的主从节点分组中是否存在指定修改节点;
[0134] 第一指示模块,用于若待处理集群中主从节点分组中存在指定修改节点,确定所述主从节点标志位用于指示所述指定修改节点为主从节点、或主节点、或从节点;
[0135] 第二指示模块,用于若待处理集群中主从节点分组中不存在指定修改节点,确定所述主从节点标志位指示所述主从节点分组中不存在所述指定修改节点。
[0136] 综上所述,本申请提供了一种redis服务节点的配置升级方法及装置。其中,该方法包括:从待处理集群中筛选出目标节点,对目标节点的配置项进行热配置修改;若热配置
修改成功,则确定目标节点的配置项为热配置,对待处理集群中的所有节点的配置项执行
热配置修改;若热配置修改失败,且所述目标节点的配置项不支持所述热配置修改,则确定
目标节点的配置项为冷配置;对待处理集群中的所有节点进行分组,对分组之后的各个节
点对应的配置文件进行冷配置修改,根据集群重启算法对分组后的各个节点进行重启。本
申请实施例能够针对大规模集群提供快速高效的运维操作,降低了redis服务配置的运维
成本。
[0137] 本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置
而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说
明即可。
[0138] 专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和
软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些
功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业
技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应
认为超出本申请的范围。
[0139] 结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存
储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD‑ROM、或技术
领域内所公知的任意其它形式的存储介质中。
[0140] 对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的
一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请
将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一
致的最宽的范围。