CN114047941B - 一种redis服务节点的配置升级方法及装置 - Google Patents
一种redis服务节点的配置升级方法及装置 Download PDFInfo
- Publication number
- CN114047941B CN114047941B CN202210029517.8A CN202210029517A CN114047941B CN 114047941 B CN114047941 B CN 114047941B CN 202210029517 A CN202210029517 A CN 202210029517A CN 114047941 B CN114047941 B CN 114047941B
- Authority
- CN
- China
- Prior art keywords
- node
- configuration
- master
- slave node
- slave
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例提供了一种redis服务节点的配置升级方法及装置。其中,该方法包括:从待处理集群中筛选出目标节点,对目标节点的配置项进行热配置修改;若热配置修改成功,则确定目标节点的配置项为热配置,对待处理集群中的所有节点的配置项执行热配置修改;若热配置修改失败,且该目标节点的配置项不支持热配置修改,则确定目标节点的配置项为冷配置;对待处理集群中的所有节点进行分组,对分组之后的各个节点对应的配置文件进行冷配置修改,根据集群重启算法对分组后的各个节点进行重启。本申请实施例能够针对大规模集群提供快速高效的运维操作,降低了redis服务节点的配置升级的运维成本。
Description
技术领域
本申请涉及服务配置升级领域,尤其涉及一种redis服务节点的配置升级方法及装置。
背景技术
随着redis服务在企业使用越来越多,使用场景越来越广,对redis服务节点的实时快速修改有着更高的要求。
目前,在现有技术中,对redis服务节点的升级采用人工逐个访问redis服务,连接redis服务对节点进行修改,并在某些情况下,需要对修改后的节点进行重启,该方式操作繁琐,十分耗时。并且,采用人工升级的方式,任何一个环节出现问题,可能会导致redis服务不可用。因此,急需一种集中化管理流程对redis服务节点进行管理操作,降低redis服务节点的配置升级的运维成本。
发明内容
有鉴于此,本申请提供了一种redis服务节点的配置升级方法及装置,能够针对大规模集群提供快速高效的运维操作,解决了redis服务节点的升级的运维难点,降低了redis服务节点的升级的运维成本。
第一方面,本申请提供了一种redis服务节点的配置升级方法,包括:
接收配置项修改请求;
查询所述配置项修改请求是否在支持配置项的白名单中,若是,则从待处理集群中筛选出目标节点,对所述目标节点的配置项进行热配置修改;
若所述热配置修改成功,则确定所述目标节点的配置项为热配置,对所述待处理集群中的所有节点的配置项执行所述热配置修改,并将所述待处理集群下的所有节点的配置项写入所述所有节点对应的配置文件中;所述待处理集群中的所有节点,包括:所述目标节点;
若所述热配置修改失败,则确定所述目标节点的配置项中的配置值为非法配置值或所述目标节点的配置项不支持所述热配置修改,若所述目标节点的配置项中的配置值为非法配置值,结束对所述目标节点的配置项的热配置修改;若所述目标节点的配置项不支持所述热配置修改,则确定所述目标节点的配置项为冷配置;
当所述目标节点的配置项为冷配置时,对所述待处理集群中的所有节点进行分组,对分组之后的各个节点对应的配置文件进行冷配置修改;
在所述冷配置修改之后,根据集群重启算法对分组后的各个节点进行重启。
优选地,所述对分组之后的各个节点对应的配置文件进行冷配置修改之前,还包括:
从预设的目标测试集群中筛选出目标测试节点,对所述目标测试节点对应的配置文件进行冷配置修改,并对所述目标测试节点进行重启;若所述重启失败,结束本次修改;
若所述重启成功,触发执行如下步骤:对分组之后的各个节点对应的配置文件进行冷配置修改;在所述冷配置修改之后,根据集群重启算法对分组后的各个节点进行重启;其中,所述预设的目标测试集群支持的配置项的范围大于或等于待处理集群支持的配置项的范围。
优选地,所有节点包括:主节点、从节点;所述对所述待处理集群中的各个节点进行分组,包括:
查询所述待处理集群中的主从节点关系信息;
根据所述主从节点关系信息,对所有节点进行分组,得到多个主从节点分组,所述主从节点分组中包括一个主节点和对应多个从节点;
为每个所述主从节点分组添加主从节点标志位;
所述对分组之后的各个节点对应的配置文件进行冷配置修改,包括:根据所述主从节点标志位,对分组之后的各个节点对应的配置文件进行冷配置修改;
所述根据集群重启算法对分组后的各个节点进行重启,包括:根据所述主从节点标志位,对分组后的各个节点进行重启。
优选地,所述为每个所述主从节点分组添加主从节点标志位,包括:
判断所述待处理集群中当前的主从节点分组中是否存在指定修改节点;
若待处理集群中主从节点分组中存在指定修改节点,确定所述主从节点标志位用于指示所述指定修改节点为主从节点、或主节点、或从节点;
若待处理集群中主从节点分组中不存在指定修改节点,确定所述主从节点标志位指示所述主从节点分组中不存在所述指定修改节点。
优选地,所述根据所述主从节点标志位,对分组之后的各个节点对应的配置文件进行冷配置修改,包括:
当所述主从节点标志位指示所述指定修改节点为主从节点时,对从节点对应的配置文件进行冷配置修改,对主节点对应的配置文件进行冷配置修改;
当所述主从节点标志位指示所述指定修改节点为主节点时,对所述主节点对应的配置文件进行冷配置修改;当所述主从节点标志位指示所述指定修改节点为从节点时,对所述从节点对应的配置文件进行冷配置修改;
当所述主从节点标志位指示所述主从节点分组中不存在所述指定修改节点时,则进行下一个主从节点分组的判断。
优选地,所述根据所述主从节点标志位,对分组后的各个节点进行重启,包括:
当所述主从节点标志位指示所述指定修改节点为主从节点时,对从节点进行重启,在所述从节点进行重启之后,对主节点进行重启;
当所述主从节点标志位指示所述指定修改节点为从节点时,对所述从节点进行重启;
当所述主从节点标志位指示所述指定修改节点为主节点时,则从当前主从节点分组中选取备用从节点,当所述备用从节点与所述主节点连接正常,将备用从节点替换为主节点,在所述备用从节点替换为主节点成功后,对替换之前的主节点进行重启;
当所述主从节点标志位指示所述主从节点分组中不存在所述指定修改节点时,结束当前主从节点分组的重启。
第二方面,本申请提供了一种redis服务节点的配置升级装置,包括:
接收模块,用于接收配置项修改请求;
第一查询模块,用于查询所述配置项修改请求是否在支持配置项的白名单中,若是,则从待处理集群中筛选出目标节点,对所述目标节点的配置项进行热配置修改;
热配置修改模块,用于若所述热配置修改成功,则确定所述目标节点的配置项为热配置,对所述待处理集群中的所有节点的配置项执行所述热配置修改,并将所述待处理集群下的所有节点的配置项写入配置文件中;所述待处理集群中的所有节点,包括:所述目标节点;
第一判断模块,用于若所述对所述目标节点的配置项进行热配置修改失败,则确定所述目标节点的配置项中的配置值为非法配置值或所述目标节点的配置项不支持所述热配置修改,若所述目标节点的配置项中的配置值为非法配置值,结束对目标节点的配置项的修改;若所述目标节点的配置项不支持所述热配置修改,则确定所述目标节点的配置项为冷配置;
冷配置修改模块,用于当所述目标节点的配置项为冷配置时,对所述待处理集群中的所有节点进行分组,对分组之后的各个节点对应的配置文件进行冷配置修改;
重启模块,用于在所述配置文件进行冷配置修改之后,根据集群重启算法对分组后的各个节点进行重启。
优选地,所述装置,还包括:
第二查询模块,用于查询所述待处理集群中的主从节点关系信息;
分组模块,用于根据所述主从节点关系信息,对所有节点进行分组,得到多个主从节点分组,所述主从节点分组中包括一个主节点和对应多个从节点;
添加模块,用于为每个所述主从节点分组添加主从节点标志位;
所述冷配置修改模块,具体用于根据所述主从节点标志位,对分组之后的各个节点对应的配置文件进行冷配置修改;
所述重启模块,具体用于根据所述主从节点标志位,对分组后的各个节点进行重启。
优选地,所述添加模块包括:
第二判断模块,用于判断所述待处理集群中当前的主从节点分组中是否存在指定修改节点;
第一指示模块,用于若待处理集群中主从节点分组中存在指定修改节点,确定所述主从节点标志位用于指示所述指定修改节点为主从节点、或主节点、或从节点;
第二指示模块,用于若待处理集群中主从节点分组中不存在指定修改节点,确定所述主从节点标志位指示所述主从节点分组中不存在所述指定修改节点。
第三方面,本申请提供了一种存储介质,所述存储介质上存储有程序,所述程序被处理器执行时实现以上任意一项所述方法。
从上述技术方案可以看出,本申请提供了一种redis服务节点的配置升级方法,包括:接收配置项修改请求;查询所述配置项修改请求是否在支持配置项的白名单中,若是,则从待处理集群中筛选出目标节点,对所述目标节点的配置项进行热配置修改;若所述热配置修改成功,则确定所述目标节点的配置项为热配置,对所述待处理集群中的所有节点的配置项执行所述热配置修改,并将所述待处理集群下的所有节点的配置项写入所述所有节点对应的配置文件中;所述待处理集群中的所有节点,包括:所述目标节点;若所述热配置修改失败,则确定所述目标节点的配置项中的配置值为非法配置值或所述目标节点的配置项不支持所述热配置修改,若所述目标节点的配置项中的配置值为非法配置值,结束对所述目标节点的配置项的热配置修改;若所述目标节点的配置项不支持所述热配置修改,则确定所述目标节点的配置项为冷配置;当所述目标节点的配置项为冷配置时,对所述待处理集群中的所有节点进行分组,对分组之后的各个节点对应的配置文件进行冷配置修改;在所述冷配置修改之后,根据集群重启算法对分组后的各个节点进行重启。本申请实施例能够针对大规模集群提供快速高效的运维操作,降低了redis服务节点的配置升级的运维成本,而且在修改的过程中,集群服务依然可用。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请公开的一种redis服务节点的配置升级方法实施例1的流程图;
图2为本申请公开的一种redis服务节点的配置升级方法实施例2的流程图;
图3为本申请公开的一种redis服务节点的配置升级装置的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
如图1所示,为本申请公开的一种redis服务节点的配置升级方法实施例1的流程图,本申请实施例提供的redis服务节点的配置升级方法具体应用于节点配置升级装置,该节点配置升级装置用于对redis服务中的各个节点进行配置升级。
所述节点的升级方法,包括:
S101、接收配置项修改请求。
具体地,由节点配置升级装置接收配置项修改请求,该请求由redis服务运维人员发送,用于对redis服务中的各个节点的配置项进行修改。
S102、查询所述配置项修改请求是否在支持配置项的白名单中,若是,则从待处理集群中筛选出目标节点,对所述目标节点的配置项进行热配置修改。
本申请实施例中,在接收到配置项修改请求之后,根据该配置项修改请求对应的redis服务版本查出其支持配置项的白名单,如果该配置项修改请求不在白名单中,则将进行拦截。
当该配置项修改请求在白名单中,则从待处理集群中筛选出目标节点,对所述目标节点的配置项进行热配置修改。其中,所述热配置修改具体为,调用redis命令中configset对目标节点的配置项进行修改。
S103、若所述热配置修改成功,则确定所述目标节点的配置项为热配置,对所述待处理集群中的所有节点的配置项执行所述热配置修改,并将所述待处理集群下的所有节点的配置项写入所述所有节点对应的配置文件中;所述待处理集群中的所有节点,包括:所述目标节点。
具体地,当对所述目标节点的配置项进行热配置修改成功之后,则说明该目标节点的配置项为热配置,并对所述待处理集群中的所有节点的配置项执行所述热配置修改,并将所述待处理集群下的所有节点的配置项写入配置文件中。
需要说明的是,对待处理集群的所有节点的配置项执行热配置修改时,无需将待处理集群进行重启,但是修改后的配置项尚未写入到配置文件中,因此,需调用redis命令中config rewrite将配置项写入到配置文件中。
S104、若所述热配置修改失败,则确定所述目标节点的配置项中的配置值为非法配置值或所述目标节点的配置项不支持所述热配置修改,若所述目标节点的配置项中的配置值为非法配置值,结束对所述目标节点的配置项的热配置修改;若所述目标节点的配置项不支持所述热配置修改,则确定所述目标节点的配置项为冷配置。
具体地,当对所述目标节点的配置项进行热配置修改失败后,则确定所述目标节点的配置项中的配置值为非法配置值或所述目标节点的配置项不支持所述热配置修改,若所述目标节点的配置项中的配置值为非法配置值,结束对目标节点的配置项的修改。
若所述目标节点的配置项不支持所述热配置修改,则可确定所述目标节点的配置项为冷配置。
需要说明的是,redis命令并不支持对所述目标节点的配置项的修改,redis命令执行时会报异常,该步骤可区分目标节点的配置项为热配置还是冷配置,从而解决了redis服务节点的配置升级的不便,和某些配置无法通过redis命令修改的问题。
S105、当所述目标节点的配置项为冷配置时,对所述待处理集群中的所有节点进行分组,对分组之后的各个节点对应的配置文件进行冷配置修改。
具体地,当所述目标节点的配置项为冷配置时,对所述待处理集群中各个节点进行分组,并对分组之后的各个节点对应的配置文件进行冷配置修改。
当所述目标节点的配置项为冷配置时,此时通过shell命令对目标节点对应的配置文件进行修改,redis命令并不支持对所述目标节点的配置项的修改。
S106、在所述冷配置修改之后,根据集群重启算法对分组后的各个节点进行重启。
具体地,在所述配置文件进行冷配置修改之后,需要根据集群重启算法对各个节点进行重启。这是因为,对配置文件进行冷配置修改之后,此时该修改尚未生效,需要根据集群重启算法对各个节点进行重启,完成对待处理集群的配置文件的修改。
需要说明的是,在重启的过程中,集群服务依然可用。
从上述技术方案可以看出,本申请提供了一种redis服务节点的配置升级方法,包括:接收配置项修改请求;查询所述配置项修改请求是否在支持配置项的白名单中,若是,则从待处理集群中筛选出目标节点,对所述目标节点的配置项进行热配置修改;若所述热配置修改成功,则确定所述目标节点的配置项为热配置,对所述待处理集群中的所有节点的配置项执行所述热配置修改,并将所述待处理集群下的所有节点的配置项写入所述所有节点对应的配置文件中;所述待处理集群中的所有节点,包括:所述目标节点;若所述热配置修改失败,则确定所述目标节点的配置项中的配置值为非法配置值或所述目标节点的配置项不支持所述热配置修改,若所述目标节点的配置项中的配置值为非法配置值,结束对所述目标节点的配置项的热配置修改;若所述目标节点的配置项不支持所述热配置修改,则确定所述目标节点的配置项为冷配置;当所述目标节点的配置项为冷配置时,对所述待处理集群中的所有节点进行分组,对分组之后的各个节点对应的配置文件进行冷配置修改;在所述冷配置修改之后,根据集群重启算法对分组后的各个节点进行重启。本申请实施例能够针对大规模集群提供快速高效的运维操作,降低了redis服务节点的配置升级的运维成本,而且在修改的过程中,集群服务依然可用。
可选的,在上述实施例的基础上,参照图2,对分组之后的各个节点对应的配置文件进行冷配置修改之前,还包括:
S201、从预设的目标测试集群中筛选出目标测试节点,对所述目标测试节点对应的配置文件进行冷配置修改,并对所述目标测试节点进行重启;若所述重启失败,结束本次修改;
S202、若所述重启成功,触发执行如下步骤:对分组之后的各个节点对应的配置文件进行冷配置修改;在所述冷配置修改之后,根据集群重启算法对分组后的各个节点进行重启;其中,所述预设的目标测试集群支持的配置项的范围大于或等于待处理集群支持的配置项的范围。
需要说明的是,为了防止通过redis中的shell命令将待处理集群的配置文件修改之后,重启服务失败,才发现待处理集群的配置文件的配置值有误,因此,通过预先设置的目标测试集群,对预设的目标测试集群中筛选出目标测试节点,对所述目标从节点的配置文件进行冷配置修改,并进行重启,当重启成功时,说明待处理集群的配置文件的配置值正确,这样一来,可减少待处理集群的重启次数。在同一版本的redis服务集群中,在预设的目标测试集群中修改配置能够成功,那么在待处理的集群中修改配置也能够成功。其中,所述预设的目标测试集群支持的配置项的范围大于或等于待处理集群支持的配置项的范围。
另外,也可以直接从待处理集群中筛选出一从节点,通过对该从节点对应的配置文件进行冷配置修改之后,进行重启,若重启成功,则说明待处理集群的配置文件的配置值正确。
可选的,在上述任一实施例的基础上,所有节点包括:主节点、从节点;所述对所述待处理集群中的各个节点进行分组,包括:
查询所述待处理集群中的主从节点关系信息;
根据所述主从节点关系信息,对所有节点进行分组,得到多个主从节点分组,所述主从节点分组中包括一个主节点和对应多个从节点;
为每个所述主从节点分组添加主从节点标志位;
所述对分组之后的各个节点对应的配置文件进行冷配置修改,包括:根据所述主从节点标志位,对分组之后的各个节点对应的配置文件进行冷配置修改;
所述根据集群重启算法对分组后的各个节点进行重启,包括:根据所述主从节点标志位,对分组后的各个节点进行重启。
具体地,本申请实施例中,首先查询待处理集群中的主从节点关系信息,根据该主从节点关系信息,对待处理集群中的所有节点进行分组,从而得到多个主从节点分组,其中,每个主从节点分组包括一个主节点和多个与该主节点对应的从节点。并为每个主从节点分组添加主从节点标志位,该主从节点标志位可以用于指示主从节点分组的节点信息,以便后续利用主从节点标志位对分组之后的各个节点对应的配置文件进行冷配置修改以及对分组后的各个节点进行重启。
本申请实施例中通过查询所述待处理集群中各个节点信息以及主从节点关系信息,从而确定出所述待处理集群中各个主节点和各个从节点,并根据主节点对各个节点进行分组,从而得到多个主从节点分组,并为每个所述主从节点分组添加主从节点标志位,根据所述主从节点标志位,对分组之后的各个节点对应的配置文件进行冷配置修改,根据所述主从节点标志位,对分组后的各个节点进行重启,能够针对大规模集群提供快速高效的运维操作,降低了redis服务节点的配置升级的运维成本。
可选的,在上述任一实施例的基础上,所述为每个所述主从节点分组添加主从节点标志位,包括:
判断所述待处理集群中当前的主从节点分组中是否存在指定修改节点;
具体的,本申请实施例中,当待处理集群中主从节点分组存在指定修改节点,该指定修改节点可能存在多个,通过遍历该主从节点分组,从而确定出该主从节点分组所包含的指定修改节点信息,主从节点标志位用于指示当前的主从节点分组中指定修改节点包含的节点信息,具体地,主从节点标志位用于指示所述指定修改节点为主从节点、或主节点、或从节点。
若待处理集群中主从节点分组中存在指定修改节点,确定所述主从节点标志位用于指示所述指定修改节点为主从节点、或主节点、或从节点;
若待处理集群中主从节点分组中不存在指定修改节点,确定所述主从节点标志位指示所述主从节点分组中不存在所述指定修改节点。
具体的,本申请实施例中,当待处理集群中主从节点分组不存在指定修改节点,则遍历该主从节点分组,确定出该主从节点分组中的主节点,及其对应的所有从节点。其中,所述主从节点标志位指示所述主从节点分组中不存在指定修改节点。
可选的,在上述任一实施例的基础上,所述根据所述主从节点标志位,对分组之后的各个节点对应的配置文件进行冷配置修改,包括:
当所述主从节点标志位指示所述指定修改节点为主从节点时,对从节点对应的配置文件进行冷配置修改,对主节点对应的配置文件进行冷配置修改;
当所述主从节点标志位指示所述指定修改节点为主节点时,对所述主节点对应的配置文件进行冷配置修改;
当所述主从节点标志位指示所述指定修改节点为从节点时,对所述从节点对应的配置文件进行冷配置修改;
当所述主从节点标志位指示所述主从节点分组中不存在所述指定修改节点时,则进行下一个主从节点分组的判断。
具体地,本申请实施例中,当所述主从节点标志位指示所述指定修改节点为主从节点时,首先对从节点对应的配置文件进行冷配置修改,在对从节点对应的配置文件进行冷配置修改之后,对主节点对应的配置文件进行冷配置修改。当所述主从节点标志位指示所述指定修改节点为主节点时,对所述主节点对应的配置文件进行冷配置修改,当所述主从节点标志位指示所述指定修改节点为从节点时,对所述从节点对应的配置文件进行冷配置修改当所述主从节点标志位指示所述主从节点分组中不存在所述指定修改节点时,则进行下一个主从节点分组的判断。
需要说明的是,当待处理集群中的主从节点分组中不存在指定修改节点时,则默认对各个主从节点分组中的所有节点对应的配置文件进行冷配置修改。
需要说明的是,所述冷配置修改具体为通过shell命令对配置文件进行修改。
本申请实施例中,通过主从节点标志位指示的指定修改节点的信息,从而确定出对哪些节点进行修改,实现快速对待处理集群的修改,而且,在修改的过程中,集群服务依然可用。
可选的,在上述任一实施例的基础上,所述根据所述主从节点标志位,对分组后的各个节点进行重启,包括:
当所述主从节点标志位指示所述指定修改节点为主从节点时,对从节点进行重启,在所述从节点进行重启之后,对主节点进行重启。
当所述主从节点标志位指示所述指定修改节点为从节点时,对所述从节点进行重启;
当所述主从节点标志位指示所述指定修改节点为主节点时,则从当前主从节点分组中选取备用从节点,当所述备用从节点与所述主节点连接正常,将备用从节点替换为主节点,在所述备用从节点替换为主节点成功后,对替换之前的主节点进行重启;
当所述主从节点标志位指示所述主从节点分组中不存在所述指定修改节点时,结束当前主从节点分组的重启。
具体地,本申请实施例中,当所述主从节点标志位指示所述指定修改节点为主从节点时,对从节点进行重启,在所述从节点进行重启之后,首先判断该从节点是否与主节点连接正常,若正常,则先对该从节点进行failover操作(在集群中,将从节点变更为主节点的操作,该操作执行之后,所述从节点将变更为主节点),执行成功后,对替换之前的主节点进行重启,在所述替换之前的主节点进行重启成功之后,如果不允许主从节点角色切换,则对所述替换之前主节点进行换主操作,以保证在重启的过程中,集群服务依然可用。这是因为,若在当前主从节点分组中直接重启主节点,会导致当前主从节点分组中没有存活的主节点,造成待处理集群服务异常。
当所述主从节点标志位指示所述指定修改节点为从节点时,对所述从节点进行重启。
当所述主从节点标志位指示所述指定修改节点为主节点时,则从当前主从节点分组中选取备用从节点,当所述备用从节点与所述主节点连接正常,将备用从节点替换为主节点,在所述备用从节点替换为主节点成功后,对替换之前的主节点进行重启。
需要说明的是,当待处理集群中的主从节点分组中不存在指定修改节点时,则默认对各个主从节点分组中的所有节点对应的配置文件进行冷配置修改之后,进行重启。
需要说明的是,若在当前主从节点分组中指定修改节点只有主节点且没有从节点,如果直接重启该主节点,导致当前主从节点分组中没有存活的主节点,造成待处理集群服务异常。因此,从当前主从节点分组中筛选出一备用从节点,判断该备用从节点与所述主节点是否连接正常,若连接正常,则将备用从节点进行failover操作(在集群中,将从节点变更为主节点的操作,该操作执行之后,所述从节点将变更为主节点),执行成功后,对替换之前的主节点(原来的主节点,现在可视为从节点)进行重启。在所述替换之前的主节点进行重启成功之后,如果不允许主从节点角色切换,则对所述替换之前主节点进行换主操作,以保证在重启的过程中,集群服务依然可用。针对上述操作,一旦某一步失败,则结束当前主从节点分组的重启,并记录重启失败的原因。
需要说明的是,若运维人员不需要对redis服务节点的配置项进行修改,只对待处理集群进行重启,此时,只需要利用对所述待处理集群中的所有节点进行分组,为每个所述主从节点分组添加主从节点标志位;判断所述待处理集群中当前的主从节点分组中是否存在指定修改节点;若待处理集群中主从节点分组中存在指定修改节点,确定所述主从节点标志位用于指示所述指定修改节点为主从节点、或主节点、或从节点;若待处理集群中主从节点分组中不存在指定修改节点,确定所述主从节点标志位指示所述主从节点分组中不存在所述指定修改节点,根据所述主从节点标志位,对分组后的各个节点进行重启。
本申请实施例中,从待处理集群中筛选出目标节点,对目标节点的配置项进行热配置修改;若热配置修改成功,则确定目标节点的配置项为热配置,对待处理集群中的所有节点的配置项执行热配置修改;若热配置修改失败,且所述目标节点的配置项不支持所述热配置修改,则确定目标节点的配置项为冷配置;对待处理集群中的所有节点进行分组,对分组之后的各个节点对应的配置文件进行冷配置修改,根据集群重启算法对分组后的各个节点进行重启。本申请实施例能够针对大规模集群提供快速高效的运维操作,降低了redis服务的节点的配置升级的运维成本。而且在修改的过程中,集群服务依然可用。
如图3所示,为本申请公开的一种redis服务节点的配置升级装置的结构示意图,包括:
接收模块100,用于接收配置项修改请求;
第一查询模块200,用于查询所述配置项修改请求是否在支持配置项的白名单中,若是,则从待处理集群中筛选出目标节点,对所述目标节点的配置项进行热配置修改;
热配置修改模块300,用于若所述热配置修改成功,则确定所述目标节点的配置项为热配置,对所述待处理集群中的所有节点的配置项执行所述热配置修改,并将所述待处理集群下的所有节点的配置项写入配置文件中;所述待处理集群中的所有节点,包括:所述目标节点;
第一判断模块400,用于若所述对所述目标节点的配置项进行热配置修改失败,则确定所述目标节点的配置项中的配置值为非法配置值或所述目标节点的配置项不支持所述热配置修改,若所述目标节点的配置项中的配置值为非法配置值,结束对目标节点的配置项的修改;若所述目标节点的配置项不支持所述热配置修改,则确定所述目标节点的配置项为冷配置;
冷配置修改模块500,用于当所述目标节点的配置项为冷配置时,对所述待处理集群中的所有节点进行分组,对分组之后的各个节点对应的配置文件进行冷配置修改;
重启模块600,用于在所述配置文件进行冷配置修改之后,根据集群重启算法对分组后的各个节点进行重启。本申请实施例还提供了一种存储介质,所述存储介质上存储有程序,所述程序被处理器执行时实现所述redis服务配置修改方法。
可选的,所述节点的升级装置,还包括:
第二查询模块,用于查询所述待处理集群中的主从节点关系信息;
分组模块,用于根据所述主从节点关系信息,对所有节点进行分组,得到多个主从节点分组,所述主从节点分组中包括一个主节点和对应多个从节点;
添加模块,用于为每个所述主从节点分组添加主从节点标志位;
所述冷配置修改模块,具体用于根据所述主从节点标志位,对分组之后的各个节点对应的配置文件进行冷配置修改;
所述重启模块,具体用于根据所述主从节点标志位,对分组后的各个节点进行重启。
可选地,所述添加模块包括:
第二判断模块,用于判断所述待处理集群中当前的主从节点分组中是否存在指定修改节点;
第一指示模块,用于若待处理集群中主从节点分组中存在指定修改节点,确定所述主从节点标志位用于指示所述指定修改节点为主从节点、或主节点、或从节点;
第二指示模块,用于若待处理集群中主从节点分组中不存在指定修改节点,确定所述主从节点标志位指示所述主从节点分组中不存在所述指定修改节点。
综上所述,本申请提供了一种redis服务节点的配置升级方法及装置。其中,该方法包括:从待处理集群中筛选出目标节点,对目标节点的配置项进行热配置修改;若热配置修改成功,则确定目标节点的配置项为热配置,对待处理集群中的所有节点的配置项执行热配置修改;若热配置修改失败,且所述目标节点的配置项不支持所述热配置修改,则确定目标节点的配置项为冷配置;对待处理集群中的所有节点进行分组,对分组之后的各个节点对应的配置文件进行冷配置修改,根据集群重启算法对分组后的各个节点进行重启。本申请实施例能够针对大规模集群提供快速高效的运维操作,降低了redis服务配置的运维成本。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种redis服务节点的配置升级方法,其特征在于,包括:
接收配置项修改请求;
查询所述配置项修改请求是否在支持配置项的白名单中,若是,则从待处理集群中筛选出目标节点,对所述目标节点的配置项进行热配置修改;
若所述热配置修改成功,则确定所述目标节点的配置项为热配置,对所述待处理集群中的所有节点的配置项执行所述热配置修改,并将所述待处理集群下的所有节点的配置项写入所述所有节点对应的配置文件中;所述待处理集群中的所有节点,包括:所述目标节点;
若所述热配置修改失败,则确定所述目标节点的配置项中的配置值为非法配置值或所述目标节点的配置项不支持所述热配置修改,若所述目标节点的配置项中的配置值为非法配置值,结束对所述目标节点的配置项的热配置修改;若所述目标节点的配置项不支持所述热配置修改,则确定所述目标节点的配置项为冷配置;
当所述目标节点的配置项为冷配置时,对所述待处理集群中的所有节点进行分组,对分组之后的各个节点对应的配置文件进行冷配置修改;
在所述冷配置修改之后,根据集群重启算法对分组后的各个节点进行重启。
2.根据权利要求1所述的方法,其特征在于,所述对分组之后的各个节点对应的配置文件进行冷配置修改之前,还包括:
从预设的目标测试集群中筛选出目标测试节点,对所述目标测试节点对应的配置文件进行冷配置修改,并对所述目标测试节点进行重启;若所述重启失败,结束本次修改;
若所述重启成功,触发执行如下步骤:对分组之后的各个节点对应的配置文件进行冷配置修改;在所述冷配置修改之后,根据集群重启算法对分组后的各个节点进行重启;其中,所述预设的目标测试集群支持的配置项的范围大于或等于待处理集群支持的配置项的范围。
3.根据权利要求1所述的方法,其特征在于,所有节点包括:主节点、从节点;所述对所述待处理集群中的各个节点进行分组,包括:
查询所述待处理集群中的主从节点关系信息;
根据所述主从节点关系信息,对所有节点进行分组,得到多个主从节点分组,所述主从节点分组中包括一个主节点和对应多个从节点;
为每个所述主从节点分组添加主从节点标志位;
所述对分组之后的各个节点对应的配置文件进行冷配置修改,包括:根据所述主从节点标志位,对分组之后的各个节点对应的配置文件进行冷配置修改;
所述根据集群重启算法对分组后的各个节点进行重启,包括:根据所述主从节点标志位,对分组后的各个节点进行重启。
4.根据权利要求3所述的方法,其特征在于,所述为每个所述主从节点分组添加主从节点标志位,包括:
判断所述待处理集群中当前的主从节点分组中是否存在指定修改节点;
若待处理集群中主从节点分组中存在指定修改节点,确定所述主从节点标志位用于指示所述指定修改节点为主从节点、或主节点、或从节点;
若待处理集群中主从节点分组中不存在指定修改节点,确定所述主从节点标志位指示所述主从节点分组中不存在所述指定修改节点。
5.根据权利要求4所述的方法,其特征在于,所述根据所述主从节点标志位,对分组之后的各个节点对应的配置文件进行冷配置修改,包括:
当所述主从节点标志位指示所述指定修改节点为主从节点时,对从节点对应的配置文件进行冷配置修改,对主节点对应的配置文件进行冷配置修改;
当所述主从节点标志位指示所述指定修改节点为主节点时,对所述主节点对应的配置文件进行冷配置修改;当所述主从节点标志位指示所述指定修改节点为从节点时,对所述从节点对应的配置文件进行冷配置修改;
当所述主从节点标志位指示所述主从节点分组中不存在所述指定修改节点时,则进行下一个主从节点分组的判断。
6.根据权利要求4所述的方法,其特征在于,所述根据所述主从节点标志位,对分组后的各个节点进行重启,包括:
当所述主从节点标志位指示所述指定修改节点为主从节点时,对从节点进行重启,在所述从节点进行重启之后,对主节点进行重启;
当所述主从节点标志位指示所述指定修改节点为从节点时,对所述从节点进行重启;
当所述主从节点标志位指示所述指定修改节点为主节点时,则从当前主从节点分组中选取备用从节点,当所述备用从节点与所述主节点连接正常,将备用从节点替换为主节点,在所述备用从节点替换为主节点成功后,对替换之前的主节点进行重启;
当所述主从节点标志位指示所述主从节点分组中不存在所述指定修改节点,结束当前主从节点分组的重启。
7.一种redis服务节点的配置升级装置,其特征在于,包括:
接收模块,用于接收配置项修改请求;
第一查询模块,用于查询所述配置项修改请求是否在支持配置项的白名单中,若是,则从待处理集群中筛选出目标节点,对所述目标节点的配置项进行热配置修改;
热配置修改模块,用于若所述热配置修改成功,则确定所述目标节点的配置项为热配置,对所述待处理集群中的所有节点的配置项执行所述热配置修改,并将所述待处理集群下的所有节点的配置项写入配置文件中;所述待处理集群中的所有节点,包括:所述目标节点;
第一判断模块,用于若所述对所述目标节点的配置项进行热配置修改失败,则确定所述目标节点的配置项中的配置值为非法配置值或所述目标节点的配置项不支持所述热配置修改,若所述目标节点的配置项中的配置值为非法配置值,结束对目标节点的配置项的修改;若所述目标节点的配置项不支持所述热配置修改,则确定所述目标节点的配置项为冷配置;
冷配置修改模块,用于当所述目标节点的配置项为冷配置时,对所述待处理集群中的所有节点进行分组,对分组之后的各个节点对应的配置文件进行冷配置修改;
重启模块,用于在所述配置文件进行冷配置修改之后,根据集群重启算法对分组后的各个节点进行重启。
8.根据权利要求7所述的装置,其特征在于,还包括:
第二查询模块,用于查询所述待处理集群中的主从节点关系信息;
分组模块,用于根据所述主从节点关系信息,对所有节点进行分组,得到多个主从节点分组,所述主从节点分组中包括一个主节点和对应多个从节点;
添加模块,用于为每个所述主从节点分组添加主从节点标志位;
所述冷配置修改模块,具体用于根据所述主从节点标志位,对分组之后的各个节点对应的配置文件进行冷配置修改;
所述重启模块,具体用于根据所述主从节点标志位,对分组后的各个节点进行重启。
9.根据权利要求8所述的装置,其特征在于,所述添加模块包括:
第二判断模块,用于判断所述待处理集群中当前的主从节点分组中是否存在指定修改节点;
第一指示模块,用于若待处理集群中主从节点分组中存在指定修改节点,确定所述主从节点标志位用于指示所述指定修改节点为主从节点、或主节点、或从节点;
第二指示模块,用于若待处理集群中主从节点分组中不存在指定修改节点,确定所述主从节点标志位指示所述主从节点分组中不存在所述指定修改节点。
10.一种存储介质,其特征在于,所述存储介质上存储有程序,所述程序被处理器执行时实现权利要求1至6中任一项所述方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210029517.8A CN114047941B (zh) | 2022-01-12 | 2022-01-12 | 一种redis服务节点的配置升级方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210029517.8A CN114047941B (zh) | 2022-01-12 | 2022-01-12 | 一种redis服务节点的配置升级方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114047941A CN114047941A (zh) | 2022-02-15 |
CN114047941B true CN114047941B (zh) | 2022-04-26 |
Family
ID=80196282
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210029517.8A Active CN114047941B (zh) | 2022-01-12 | 2022-01-12 | 一种redis服务节点的配置升级方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114047941B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114640586B (zh) * | 2022-05-19 | 2023-01-06 | 飞狐信息技术(天津)有限公司 | 集群的版本升级方法、装置、存储介质及设备 |
CN115495161B (zh) * | 2022-11-17 | 2023-04-07 | 苏州浪潮智能科技有限公司 | Bios选项修改的生效方法和装置、存储介质 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103945000A (zh) * | 2014-05-05 | 2014-07-23 | 安徽科大讯飞信息科技股份有限公司 | 一种负载均衡方法及负载均衡器 |
CN105490843A (zh) * | 2015-12-01 | 2016-04-13 | 努比亚技术有限公司 | 一种信息处理方法及*** |
CN108334380A (zh) * | 2018-01-19 | 2018-07-27 | 新智云数据服务有限公司 | 一种配置项管理方法、装置、终端和计算机可读存储介质 |
CN110912977A (zh) * | 2019-11-15 | 2020-03-24 | 北京浪潮数据技术有限公司 | 一种配置文件的更新方法、装置、设备及存储介质 |
CN111104133A (zh) * | 2018-10-25 | 2020-05-05 | 深圳市茁壮网络股份有限公司 | 一种配置参数的更新***、方法及存储介质 |
CN111277432A (zh) * | 2020-01-10 | 2020-06-12 | 腾讯科技(深圳)有限公司 | 配置信息更新方法、装置、电子设备及存储介质 |
CN111639027A (zh) * | 2020-05-25 | 2020-09-08 | 北京百度网讯科技有限公司 | 一种测试方法、装置及电子设备 |
CN112181987A (zh) * | 2020-10-12 | 2021-01-05 | 嘉联支付有限公司 | 一种非时序数据处理方法 |
CN113032105A (zh) * | 2021-04-20 | 2021-06-25 | 金蝶软件(中国)有限公司 | 一种Kubernetes集群访问控制方法、***及相关设备 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10778744B2 (en) * | 2015-08-13 | 2020-09-15 | Molbase (Shanghai) Biotechnology Co., Ltd. | Configurable caching system and method thereof |
US20200412767A1 (en) * | 2015-10-28 | 2020-12-31 | Qomplx, Inc. | Hybrid system for the protection and secure data transportation of convergent operational technology and informational technology networks |
CN109815049B (zh) * | 2017-11-21 | 2021-03-26 | 北京金山云网络技术有限公司 | 节点宕机恢复方法、装置、电子设备及存储介质 |
-
2022
- 2022-01-12 CN CN202210029517.8A patent/CN114047941B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103945000A (zh) * | 2014-05-05 | 2014-07-23 | 安徽科大讯飞信息科技股份有限公司 | 一种负载均衡方法及负载均衡器 |
CN105490843A (zh) * | 2015-12-01 | 2016-04-13 | 努比亚技术有限公司 | 一种信息处理方法及*** |
CN108334380A (zh) * | 2018-01-19 | 2018-07-27 | 新智云数据服务有限公司 | 一种配置项管理方法、装置、终端和计算机可读存储介质 |
CN111104133A (zh) * | 2018-10-25 | 2020-05-05 | 深圳市茁壮网络股份有限公司 | 一种配置参数的更新***、方法及存储介质 |
CN110912977A (zh) * | 2019-11-15 | 2020-03-24 | 北京浪潮数据技术有限公司 | 一种配置文件的更新方法、装置、设备及存储介质 |
CN111277432A (zh) * | 2020-01-10 | 2020-06-12 | 腾讯科技(深圳)有限公司 | 配置信息更新方法、装置、电子设备及存储介质 |
CN111639027A (zh) * | 2020-05-25 | 2020-09-08 | 北京百度网讯科技有限公司 | 一种测试方法、装置及电子设备 |
CN112181987A (zh) * | 2020-10-12 | 2021-01-05 | 嘉联支付有限公司 | 一种非时序数据处理方法 |
CN113032105A (zh) * | 2021-04-20 | 2021-06-25 | 金蝶软件(中国)有限公司 | 一种Kubernetes集群访问控制方法、***及相关设备 |
Non-Patent Citations (3)
Title |
---|
"Redis Cluster的代理***设计与实现";兰焱;《中国优秀博硕士学位论文全文数据库(硕士) 信息科技辑》;20211215(第12期);论文全文 * |
"一种大规模Redis集群云运维技术";屠雪真;《电脑知识与技术》;20190331;第15卷(第8期);1-3页 * |
"针对Redis主从复制";杨雪婵;《网络安全和信息化》;20170331;69-71页 * |
Also Published As
Publication number | Publication date |
---|---|
CN114047941A (zh) | 2022-02-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114047941B (zh) | 一种redis服务节点的配置升级方法及装置 | |
JP5006941B2 (ja) | 通信端末 | |
CN106909411B (zh) | 一种文件更新方法及装置 | |
CN102346779B (zh) | 分布式文件***和主控节点的备份方法 | |
CN111427728B (zh) | 状态管理方法、主备切换方法及电子设备 | |
JP2015508948A (ja) | 自己組織化ネットワークの協調方法、装置、及びシステム | |
CN110532278B (zh) | 声明式的MySQL数据库***高可用方法 | |
CN104778102A (zh) | 一种主备切换方法及*** | |
CN105550229A (zh) | 分布式存储***数据修复的方法和装置 | |
CN110597664A (zh) | 一种高可用集群资源部署方法、装置及相关组件 | |
CN112181720A (zh) | 一种基于云管理平台的虚拟数据中心备份方法及装置 | |
CN110825428A (zh) | 一种状态机配置方法、装置、设备及可读存储介质 | |
CN111444039B (zh) | 缓存数据回退方法以及缓存数据回退装置 | |
CN112130761A (zh) | 一种存储***的扩容方法、***及相关装置 | |
CN113126925B (zh) | 一种成员列表确定方法、装置、设备及可读存储介质 | |
CN112015348B (zh) | 一种数据卷的io静默方法、装置和介质 | |
CN113064755A (zh) | 数据恢复方法、装置、设备、介质及程序产品 | |
JP7219568B2 (ja) | 基地局、制御方法およびプログラム | |
CN111614701A (zh) | 一种分布式集群、以及容器状态切换方法、装置 | |
CN115268785A (zh) | 一种应用于分布式存储***的管理方法、装置及存储介质 | |
CN114780177A (zh) | 事务执行方法及装置、存储介质及电子装置 | |
CN114168261A (zh) | 一种基于OpenStack管理裸金属实例的高可用方法及装置 | |
CN109672573B (zh) | 一种配置文件的部署方法、确定方法、服务器及存储介质 | |
CN110309149B (zh) | 一种数据表处理方法、装置、电子设备及存储介质 | |
CN109408581B (zh) | 一种数据交换方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |