利用 RedisShake 实现 Redis 跨集群异步复制
场景描述
Redis Cluster 和 Redis Standalone 可通过 RedisShake 进行同集群或跨集群的数据异步复制,实现灾备和多活的业务场景,同时也免去双写的业务开销。RedisShake 的基本原理则是模拟一个从节点加入源 Redis 集群进行全量拉取并回放,然后进行增量的拉取(通过 psync 命令)实现目的集群与源集群的异步复制。
约束与限制
-
源集群支持以下版本:
-
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 环境入口请提交工单或联系管理员获取。 |
第1步:基本设置
-
在顶部区域下拉框中,选择部署区域。
-
填写 RedisShake 集群的基本信息,包括:名称、描述、选择版本、计费方式、自动备份时间和可用区。
第2步:节点设置
选择主机类型、CPU和内存规格。主机类型推荐选择企业型 e3
,实际请根据集群情况选择规格。
第3步:网络设置
选择 VPC 网络、私有网络以及节点 IP 类型。
说明 |
---|
VPC 网络和私有网络需选择能够同时访问到源集群与目标集群的网络。 |
第4步:服务环境参数设置
-
填写必填参数,点击更多服务环境参数并根据实际需求填写。
参数说明请参见 RedisShake 参数介绍。
-
点击校验表单参数。
-
待提示校验成功,点击提交。
第5步:查看异步复制监控
待 RedisShake 集群创建成功,集群状态为活跃
,集群节点服务状态为正常
。在节点页签服务和资源监控页面可查看集群异步复制情况。
RedisShake 参数介绍
参数 | 取值范围 | 参数说明 |
---|---|---|
source.type |
|
源集群 Redis 的类型,必填。
|
source.address |
- |
源 Redis 地址,必填。
|
target.type |
|
目标集群 Redis 的类型,必填。
|
target.address |
- |
目标 Redis 地址,必填。
|
parallel |
1 - 256 |
启动多少个并发线程同步一个 RDB 文件,默认值为 32。 |
source.password_raw |
- |
源端密码,留空表示无密码。 |
target.password_raw |
- |
目标端密码,留空表示无密码。 |
fake_time |
- |
用于处理过期的键值,当迁移两端不一致的时候,目的端需要加上这个值。 |
key_exists |
|
当源目的有重复 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 |
|
断点传续开关。 |
log.level |
|
日志等级。 |
Enable web console |
|
是否开启 WebConsole。
|
文件查看用户名 |
- |
登录 Console 界面管理员账户。 |
文件查看密码 |
- |
登录 Console 界面管理员账户密码。 |