配置容灾集群涉及两部分:为 Redis 实例启用容灾配置,以及建立目标实例与源实例之间的连接。
在容灾集群中,每个 Redis 实例的角色不是固定的;它可以是源端也可以是目标端。目标端不限制数据写入,但写入目标端的数据会被从源端同步过来的数据覆盖,或者因数据类型冲突导致同步失败。
您需要先创建一个 Redis 实例。
为实例启用容灾支持后,容灾 Proxy 默认提供一个基于 NodePort 的访问地址。单一 NodePort 访问地址的高可用性较低。在生产环境中,可以使用 LoadBalancer 地址为 Proxy 提供访问。
每个容灾实例会创建一个 Proxy Service,名称格式为:activeredis-proxy-<instance-name>
。
Sentinel 实例的实例名需加前缀
rfr-
serviceID
的范围为 [0-15]
。同一容灾集群中,serviceID 不能重复。
default
用户密码的 secret注意替换源端地址和 secret。
其中 status.shards[0].status
表示分片的连接状态,status.shards[0].syncStatus
表示数据同步状态。同步状态可以是 PartialSync
(表示增量同步 Oplog)或 FullSync
(表示正在同步 RDB)。
原生 Redis 哨兵模式没有分片的概念,这里将 Sentinel 的主从抽象为
shard 0
,以兼容与 Redis 集群模式相同的数据结构。