目标实例连接时,仅支持 <ip:port>
连接,暂不支持域名。
灾备 Proxy 地址本身不具备高可用性。如果通过 NodePort 暴露源 Proxy,请将其置于前端负载均衡器之后以确保 HA;或者使用 MetalLB 为 Proxy 提供高可用的虚拟 IP。
仅 Redis 6.0 实例支持灾备功能,Redis 7.2 的支持仍在开发中;Redis 6.0 开启灾备后,不支持升级至 Redis 7.2。
Redis 灾备模块开启后,会在 Redis 持久化的 RDB 文件中写入对应的 offset
和 oplog id
等 AUX 信息记录;同时,Redis 实例的主从同步中会有特殊的同步指令。因此,为保证数据的可靠性和集群的可用性,开启后不允许卸载 Redis 灾备模块。
Redis 灾备实例会实时将 oplog 写入存储(每秒执行一次 fsync);当 oplog 达到限制大小(3Gb)时,会切割 oplog 文件;清理逻辑会定期标记未使用的 oplog 切片文件并及时清理。因此,上述操作会同时存在 oplog 的读写和 rdb 生成的存储逻辑,会增加存储压力。建议使用本地 SSD 作为存储,以保证持久化性能。
使用 RDB 参数模板,结合 save 参数,主动触发快照和主动触发 oplog 清理,可以保证新目标实例连接时快速同步快照。如果使用 AOF 参数模板,仍需设置 save
参数以确保定期 RDB 持久化,保证本地数据更可靠,但同时开启 RDB 和 AOF 持久化对存储性能要求更高。请确认使用本地 SSD 作为存储。
Redis 灾备插件当前基于 oplog 同步数据。oplog 上下文具有关联性和幂等性,oplog 数据不能被重新分片并提交到不同分片。该限制要求:
由于 service_id
限制,灾备源端最多可有 15 个目标实例。但目前不支持级联,也不支持多活(仅支持星型分布,不支持树型或环型链路)。
migrate
、pubsub
相关命令、stream
相关命令。对于 pubsub
和 stream
命令,建议使用 MQ 组件替代。
源端故障后,在灾备切换之前,首要操作是断开目标与源端的同步链路,防止源端突然恢复但数据不正确,从而污染目标端。