Redis 集群方案中,无论采用哪种部署形式,节点宕机与高可用处理都是绕不开的核心问题。
两种容灾策略
节点宕机后,客户端通常有两种应对策略:
- 重连:在原节点恢复后重新建立连接。
- 等待新主节点提权:由集群选出新的主节点接管 slot,客户端切换到新主节点继续服务。
由于节点宕机后往往需要将大量数据重新加载到内存,恢复时间较长,有时甚至需要数分钟,因此重连方案在实践中几乎不被考虑,高可用方案几乎只依赖新主节点提权这一路径。
Redis Cluster 官方方案
redis-cluster 的官方容灾方案基于主从切换:新的主节点完成提权后,对应的 slot 切换为连接新主节点并继续对外服务。
通常的配置是 1 主 2 从,每个 slot 共 3 个节点,以此保证高可用。此外,客户端还需要正确处理 MOVED error,避免误连从节点导致写操作失败。
详细规范可参考:redis 集群规范