redis cluster集群架构详解(十六)- redis cluster常用操作-节点的新增、删除、slot导入等常用操作

本文介绍了Redis Cluster的常用操作,包括设置节点间心跳超时时间、在所有节点上执行命令、数据导入、slot在线迁移、节点平衡、新节点加入与删除。详细阐述了每个操作的命令、流程及注意事项,帮助理解Redis Cluster的管理与维护。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

接上篇文章,以下介绍redis cluster的常用操作:set-timeout 节点间心跳超时时间、call 、import、reshard、rebalance、add-node、del-node。

5.8.7.set-timeout设置集群节点间心跳连接的超时时间

set-timeout用来设置集群节点间心跳连接的超时时间,单位是毫秒,不得小于100毫秒,因为100毫秒对于心跳时间来说太短了。该命令修改是节点配置参数cluster-node-timeout,默认是15000毫秒。通过该命令,可以给每个节点设置超时时间,设置的方式使用config set命令动态设置,然后执行config rewrite命令将配置持久化保存到硬盘。以下是示例:

[root@cache01 src]# redis-cli --cluster set-timeout 192.168.75.187:7001 30000

在这里插入图片描述

5.8.8.call在集群全部节点上执行命令

call命令可以用来在集群的全部节点执行相同的命令。call命令也是需要通过集群的一个节点地址,连上整个集群,然后在集群的每个节点执行该命令。

[root@cache01 src]# redis-cli --cluster call 192.168.75.187:7001 get name

运行效果如下:

在这里插入图片描述

5.8.9.import将外部redis数据导入集群

import命令可以把外部的redis节点数据导入集群。如下示例:

[root@cache01 src]# redis-cli --cluster import 192.168.75.187:7005 --cluster-from 192.168.75.187:7002

在这里插入图片描述

上面的命令是把 192.168.75.187:7002上的数据导入到 192.168.75.187:7005这个节点所在的集群

导入的流程如下:

1、通过load_cluster_info_from_node方法加载集群信息,check_cluster方法检查集群是否健康;
2、连接外部redis节点,如果外部节点开启了cluster_enabled,则提示错误;
3、通过scan命令遍历外部节点,一次获取1000条数据;
4、遍历这些key,计算出key对应的slot;
5、执行migrate命令,源节点是外部节点,目的节点是集群slot对应的节点,如果设置了–copy参数,则传递copy参数,如果设置了–replace,则传递replace参数;
6、不停执行scan命令,直到遍历完全部的key;
7、至此完成整个迁移流程。

这中间如果出现异常,程序就会停止。没使用--copy模式,则可以重新执行import命令,使用--copy的话,最好清空新的集群再导入一次。

import命令更适合离线的把外部redis数据导入,在线导入的话最好使用更专业的导入工具,以slave的方式连接redis节点去同步节点数据应该是更好的方式。  

5.8.9. 注意事项:集群创建时 replicas 参数指定情况

使用 --replicas 1 参数时,如果节点数量少于六个,会报如下错误:

*** ERROR: Invalid configuration for cluster creation.
*** Redis Cluster requires at least 3 master nodes.
*** This is not possible with 5 nodes and 1 replicas per node.
*** At least 6 nodes are required.

使用 --replicas 1 参数时,如果节点数量 大于六个,且为单数时。
这样会造成某个master拥有两个salve

5.8.9.reshard在线迁移slot

reshard命令可以在线把集群的一些slot从集群原来slot负责节点迁移到新的节点,利用reshard可以完成集群的在线横向扩容和缩容。
reshard的参数很多,下面来一一解释一番:

reshard host:port
–cluster-from
–cluster-to
–cluster-slots
–cluster-yes
–cluster-timeout
–cluster-pipeline
–cluster-replace

命令 说明
host:port 这个是必传参数,用来从一个节点获取整个集群信息,相当于获取集群信息的入口。
–cluster-from 需要从哪些源节点上迁移slot,可从多个源节点完成迁移,以逗号隔开,传递的是节点的node id,还可以直接传递–cluster-from all,这样源节点就是集群的所有节点,不传递该参数的话,则会在迁移过程中提示用户输入。
–cluster-to slot需要迁移的目的节点的node id,目的节点只能填写一个,不传递该参数的话,则会在迁移过程中提示用户输入。
–cluster-slots 需要迁移的slot数量,不传递该参数的话,则会在迁移过程中提示用户输入。
–cluster-yes 设置该参数,可以在打印执行reshard计划的时候,提示用户输入yes确认后再执行reshard。
–timeout 设置migrate命令的超时时间。
–cluster-pipeline 定义cluster getkeysinslot命令一次取出的key数量,不传的话使用默认值为10。
–cluster-replace

迁移的流程如下:

1、通过load_cluster_info_from_node方法装载集群信息。
2、执行check_cluster方法检查集群是否健康。只有健康的集群才能进行迁移。
3、获取需要迁移的slot数量,用户没传递–cluster-slots参数,则提示用户手动输入。
4、获取迁移的目的节点,用户没传递–cluster-to参数,则提示用户手动输入。此处会检查目的节点必须为master节点。
5、获取迁移的源节点,用户没传递–cluster-from参数,则提示用户手动输入。此处会检查源节点必须为master节点。–c

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值