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