利用 RedisShake 实现 Redis 跨集群异步复制
场景描述
Redis Cluster 和 Redis Standalone 可通过 RedisShake 进行同集群或跨集群的数据异步复制,实现灾备和多活的业务场景,同时也免去双写的业务开销。RedisShake 的基本原理则是模拟一个从节点加入源 Redis 集群进行全量拉取并回放,然后进行增量的拉取实现目的集群与源集群的异步复制。
约束限制
-
源集群支持以下版本:
-
Redis Cluster 6.x
-
Redis Cluster 5.x
-
Redis Standalone 6.x
-
Redis Standalone 5.x
-
-
目的集群支持以下版本:
-
Redis Cluster 6.x
-
Redis Cluster 5.x
-
Redis Standalone 6.x
-
Redis Standalone 5.x
-
前提条件
-
已创建源集群和目的集群。
-
已获取源集群和目的集群的类型和 IP 地址。
-
已获取 RedisShake 功能入口。
说明 RedisShake 功能入口可通过工单或联系管理员获取。
操作步骤
步骤一:基本设置
-
进入 RedisShake 集群创建界面。
-
在顶部区域下拉框中,选择部署区域。
-
填写 RedisShake 集群的基本信息,包括:名称、描述、选择版本、计费方式、自动备份时间和可用区。
步骤二:节点设置
选择主机类型、CPU和内存规格。主机类型推荐选择 企业型 e3,实际请根据集群情况选择规格。
步骤三:网络设置
选择 VPC 网络、私有网络以及节点 IP 类型。
| 说明 |
|---|
VPC 网络和私有网络需选择能够同时访问到源集群与目标集群的网络。 |
步骤四:服务环境参数设置
-
填写必填参数,点击更多服务环境参数并根据实际需求填写。RedisShake 参数说明如下。
参数 说明 source.type
源集群 Redis 的类型,必填。
-
standalone表示 Redis Standalone 集群。 -
集群表示 Redis Cluster 集群。
source.address
源 Redis 地址,必填。
-
集群类型选择
standalone时对应集群地址需填写 VIP 地址,例如:172.22.4.253:6379。 -
集群类型选择
集群时对应集群地址需填写所有节点 IP 地址,例如:"172.22.4.2:6379;172.22…;172.22.4.7:6379"。
说明 多个 IP 地址必须使用双引号
" "。target.type
目标集群 Redis 的类型,必填。
-
standalone表示 Redis Standalone 集群。 -
集群表示 Redis Cluster 集群。
target.address
目标 Redis 地址,必填。
-
集群类型选择
standalone时对应集群地址需填写 VIP 地址,例如:172.22.4.253:6379。 -
集群类型选择
集群时对应集群地址需填写所有节点 IP 地址,例如:"172.22.4.2:6379;172.22…;172.22.4.7:6379"。
说明 多个 IP 地址必须使用双引号
" "。parallel
启动多少个并发线程同步一个 RDB 文件,默认值为
32,取值范围1~256。source.password_raw
源端密码,留空表示无密码。
target.password_raw
目标端密码,留空表示无密码。
fake_time
用于处理过期的键值,当迁移两端不一致的时候,目的端需要加上这个值。
key_exists
当源目的有重复 key 时是否进行覆写。
-
-表示一旦发生进程直接退出。 -
rewrite表示源端覆盖目的端。 -
ignore表示保留目的端 Key,忽略源端的同步 Key。
filter.db.whitelist
指定的 DB 被通过,比如
0;5;10将会使db0,db5,db10通过,其他的被过滤。filter.db.blacklist
指定的 DB 被过滤,比如
0;5;10将会使db0,db5,db10过滤,其他的被通过。filter.key.whitelist
支持按前缀过滤 Key,只让指定前缀的 Key 通过,分号分隔。比如指定
abc,将会通过abc,abc1,abcxxx等。filter.key.blacklist
支持按前缀过滤 Key,不让指定前缀的 Key 通过,分号分隔。比如指定
abc,将会阻塞abc,abc1,abcxxx等。filter.slot
指定过滤 Slot,只让指定的 Slot 通过。
filter.lua
控制不让 lua 脚本通过,
true表示不通过。默认为false。big_key_threshold
如果目的端大版本小于源端,也建议设置为
1。默认值为524288000。keep_alive
TCP keep-alive 保活参数,单位秒,
0表示不启用。qps
同步 QPS 上限,默认值为
200000。resume_from_break_point
断点传续开关。
true表示开启,false表示关闭。log.level
日志等级。可取值如下。
-
-
-
error
-
warn
-
info
-
debug
Enable web console
是否开启 WebConsole。
-
true表示开启。 -
false表示关闭,不会重启 Redis。
文件查看用户名
登录 Console 界面管理员账户。
文件查看密码
登录 Console 界面管理员账户密码。
-
-
点击校验表单参数。
-
待提示校验成功,点击提交。
步骤五:查看异步复制监控
待 RedisShake 集群创建成功,集群状态为 活跃,集群节点服务状态为 正常。在节点页签服务和资源监控页面可查看集群异步复制情况。