场景描述

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 功能入口可通过工单或联系管理员获取。

操作步骤

步骤一:基本设置

  1. 进入 RedisShake 集群创建界面。

  2. 在顶部区域下拉框中,选择部署区域。

  3. 填写 RedisShake 集群的基本信息,包括:名称、描述、选择版本、计费方式、自动备份时间和可用区。

    基本设置

步骤二:节点设置

选择主机类型、CPU和内存规格。主机类型推荐选择 企业型 e3,实际请根据集群情况选择规格。

节点设置

步骤三:网络设置

选择 VPC 网络、私有网络以及节点 IP 类型。

说明

VPC 网络和私有网络需选择能够同时访问到源集群与目标集群的网络。

网络设置

步骤四:服务环境参数设置

  1. 填写必填参数,点击更多服务环境参数并根据实际需求填写。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 将会使 db0db5db10 通过,其他的被过滤。

    filter.db.blacklist

    指定的 DB 被过滤,比如 0;5;10 将会使 db0db5db10 过滤,其他的被通过。

    filter.key.whitelist

    支持按前缀过滤 Key,只让指定前缀的 Key 通过,分号分隔。比如指定 abc,将会通过 abcabc1abcxxx 等。

    filter.key.blacklist

    支持按前缀过滤 Key,不让指定前缀的 Key 通过,分号分隔。比如指定 abc,将会阻塞 abcabc1abcxxx 等。

    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 界面管理员账户密码。

  2. 点击校验表单参数

  3. 待提示校验成功,点击提交

步骤五:查看异步复制监控

待 RedisShake 集群创建成功,集群状态为 活跃,集群节点服务状态为 正常。在节点页签服务和资源监控页面可查看集群异步复制情况。

查看