*Redis FAILOVER 命令
手动触发主从故障转移。Redis 6.0+ 引入,用于非 Cluster 模式的主从架构。
*语法
FAILOVER [TO host port [FORCE] [ABORT]] [ABORT] [TIMEOUT milliseconds]
*参数说明
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| TO | 标志 | 否 | 指定目标副本 |
| host | String | 否 | 目标副本主机(TO 时必填) |
| port | Integer | 否 | 目标副本端口(TO 时必填) |
| FORCE | 标志 | 否 | 强制故障转移,不等待数据同步 |
| ABORT | 标志 | 否 | 中止正在进行的故障转移 |
| TIMEOUT | Integer | 否 | 超时时间(毫秒) |
*返回值
| 条件 | 返回值 |
|---|---|
| 成功 | OK |
| 正在进行 | 错误提示 |
| 中止 | OK |
*时间复杂度
O(1)
*
*示例
# 手动故障转移到指定副本
> FAILOVER TO 192.168.1.200 6379
OK
# 强制故障转移
> FAILOVER TO 192.168.1.200 6379 FORCE
OK
# 中止故障转移
> FAILOVER ABORT
OK
*常见错误
- 目标不是副本:返回错误。
*最佳实践
- 主从切换:主节点维护时,手动 FAILOVER 切换到副本。
*FAQ
Q: FAILOVER 和 CLUSTER FAILOVER 有什么区别? A: FAILOVER 用于单机主从模式;CLUSTER FAILOVER 用于 Cluster 模式。