华为云用户手册

  • 测试结果 以下测试结果仅供参考,不同局点环境和网络波动等客观条件可能产生性能差异。 QPS:即Query Per Second,表示每秒处理的读写操作数,单位是次/秒。 平均/最大时延:操作的平均/最大延迟时间,单位为毫秒(ms)。 x%延迟:指x%操作的延迟时间,单位为毫秒(ms)。例如该指标的值为10ms,99.99%延迟表示99.99%的请求可以在10ms内被处理。 表1 SET操作命令测试结果 实例规格 实例CPU类型 并发连接数(个) QPS 95%左右延迟(ms) 99.99%延迟(ms) 最大时延(ms) 64G X86 3000 1,323,935.00 3.3 9.4 220 5000 1,373,756.00 5.3 13 240 10000 1,332,074.00 11 26 230 80000 946,032.00 110 460 6800 64G ARM 3000 837,864.92‬ 5.8 16 78 5000 763,609.69‬ 10 29 240 10000 703,808.39 20 47 250 80000 625,841.69 170 410 940 表2 GET操作命令测试结果 实例规格 实例CPU类型 并发连接数(个) QPS 95%左右延迟(ms) 99.99%延迟(ms) 最大时延(ms) 64G X86 3000 1,366,153.00 3.3 9.3 230 5000 1,458,451.00 5.1 13 220 10000 1,376,399‬.00 11 29 440 80000 953,837‬.00 120 1300 2200 64G ARM 3000 764,114.55 6.1 17 100 5000 765,187.74 10 27 230 10000 731,310.95 20 47 250 80000 631,373.33 170 1300 1900
  • 测试结果 表1 SET操作命令测试结果 实例规格 实例CPU类型 并发连接数(个) QPS 99.99%延迟(ms) 第一个100%延迟(ms) 最后一个100%延迟(ms) 64G X86 1000 534960.92 24 34 209 10000 511362.67 108 171 315 表2 GET操作命令测试结果 实例规格 实例CPU类型 并发连接数(个) QPS 99.99%延迟(ms) 第一个100%延迟(ms) 最后一个100%延迟(ms) 64G X86 1000 584669.15 23 31 82 10000 533178.04 144 184 370 Redis 3.0实例暂不支持ARM CPU类型实例,仅提供X86类型的实例测试结果。
  • 测试命令 redis-benchmark -h {IP} -p {Port} -a {password} -n {nreqs} -r {randomkeys} -c {connection} -d {datasize} -t {command} 参数参考值:-c {connect_number}:1000,-n {nreqs}:10000000,-r {randomkeys}:1000000,-d {datasize}:32。
  • 测试结果 以下测试结果仅供参考,不同局点环境和网络波动等客观条件可能产生性能差异。 QPS:即Query Per Second,表示每秒处理的读写操作数,单位是次/秒。 平均/最大时延:操作的平均/最大延迟时间,单位为毫秒(ms)。 x%延迟:指x%操作的延迟时间,单位为毫秒(ms)。例如该指标的值为10ms,99.99%延迟表示99.99%的请求可以在10ms内被处理。 表1 SET操作命令测试结果 实例规格 实例CPU类型 并发连接数(个) QPS 99.99%延迟(ms) 第一个100%延迟(ms) 最后一个100%延迟(ms) 32G X86 1000 371780.2‬ 5.6 6.3 44 10000 256073.11 90 220 460 32G ARM 1000 317053.78 17 34 230 10000 248832.33 410 490 750 表2 GET操作命令测试结果 实例规格 实例CPU类型 并发连接数(个) QPS 99.99%延迟(ms) 第一个100%延迟(ms) 最后一个100%延迟(ms) 32G X86 1000 427000.04 5.0 5.3 78 10000 302159.03‬ 63 220 460 32G ARM 1000 421402.06 13 14 65 10000 309359.18 180 260 500
  • redis-cli常用命令举例 连接实例: ./redis-cli -h {IP} -p 6379 指定连接某个DB: ./redis-cli -h {IP} -p 6379 -n 10 连接cluster集群实例: ./redis-cli -h {IP} -p 6379 -c 测试时延(原理是发ping命令): ./redis-cli -h {IP} -p 6379 --latency 执行scan扫描匹配指定模式的key: ./redis-cli -h {IP} -p 6379 --scan --pattern '*:12345*'
  • redis-benchmark常用命令举例 单机、主备、读写分离和proxy集群的测试命令: ./redis-benchmark -h {IP或域名} -p 6379 -a {password} --threads {num} -n { nreqs } -r { randomkeys } -c {clients} -d {datasize} -t {command} cluster集群测试命令: ./redis-benchmark -h {IP或域名} -p 6379 -a {password} --threads {num} -n { nreqs } -r { randomkeys } -c {clients} -d {datasize} --cluster -t {command} 测试短连接: ./redis-benchmark -h {IP或域名} -p 6379 -a {password} --threads {num} -n { nreqs } -r { randomkeys } -c {clients} -d {datasize} -k 0 -t {command} 测试空闲连接: ./redis-benchmark -h {IP或域名} -p 6379 -a {pwd} -c {clients} -I
  • 获取redis-cli和redis-benchmark 创建弹性云服务器(ECS),根据不同的操作系统直接安装Redis-server,下面以ubuntu和CentOS系统为例: 直接编译安装Redis或者使用yum,apt安装Redis-server,安装Redis-Server的同时,会同步安装benchmark。 ubuntu系统 sudo apt update sudo apt install redis-server CentOS系统 sudo yum install epel-release sudo yum update sudo yum -y install redis 也可以直接下载安装包,进行解压和编译,以下载redis-6.0.9版本为例: 下载redis-6.0.9客户端。 wget http://download.redis.io/releases/redis-6.0.9.tar.gz 解压客户端压缩包。 tar xzf redis-6.0.9.tar.gz 进入redis-6.0.9的src目录下。 cd redis-6.0.9/src 编译源码。 make 编译完成后,工具一般在redis-x.x.x的src目录下。
  • 测试结果 以下测试结果仅供参考,不同局点环境和网络波动等客观条件可能产生性能差异。 QPS:即Query Per Second,表示每秒处理的读写操作数,单位是次/秒。 平均/最大时延:操作的平均/最大延迟时间,单位为毫秒(ms)。 x%延迟:指x%操作的延迟时间,单位为毫秒(ms)。例如该指标的值为10ms,99.99%延迟表示99.99%的请求可以在10ms内被处理。 表1 SET操作命令测试结果 实例规格 实例CPU类型 并发连接数(个) QPS 99.99%延迟(ms) 第一个100%延迟(ms) 最后一个100%延迟(ms) 平均时延(ms) 8G X86 500 132068.98 11 18 205 3.298 10000 82386.58 171 178 263 69.275 8G ARM 500 94811.89 10 12 13 3.476 10000 61264.37 340 350 351 83.848 32G X86 500 131385.33 9.5 16 17 3.333 10000 82275.41 157 162.18 162.43 62.105 32G ARM 500 117553.02 8 21 22 3.875 10000 76001.7 175 386 387 99.362 表2 GET操作命令测试结果 实例规格 实例CPU类型 并发连接数(个) QPS 99.99%延迟(ms) 第一个100%延迟(ms) 最后一个100%延迟(ms) 平均时延(ms) 8G X86 500 138652.02 7 11 12 2.117 10000 82710.94 123.7 281.6 282.9 61.078 8G ARM 500 95432.59 8.8 10 214 3.186 10000 60984.16 217 337.15 337.92 83.321 32G X86 500 139113.02 6.6 10 11 2.119 10000 82489.36 100 105.66 106 60.968 32G ARM 500 139041.45 6 10 11 2.487 10000 81563.41 141 149 150 63
  • 测试命令 redis-benchmark -h {IP} -p {Port} -a {password} -n {nreqs} -r {randomkeys} -c {connection} -d {datasize} -t {command} 参数参考值:-c {connect_number}:500,-n {nreqs}:10000000,-r {randomkeys}:1000000,-d {datasize}:32,-t {command}:set。
  • 步骤1:生成AOF文件 正式进行迁移操作前,建议先暂停业务,确保不会在迁移过程中丢失新产生的数据变动。 建议选择业务量较少的时间段进行迁移。 使用如下命令开启缓存持久化,得到AOF持久化文件。 redis-cli -h {source_redis_address} -p 6379 -a {password} config set appendonly yes 开启持久化之后,如果AOF文件大小不再变化,说明AOF文件为全量缓存数据。 使用redis-cli登录redis实例,输入命令“config get dir”可以查找生成的AOF文件保存路径,文件名如果没有特殊指定,默认为:appendonly.aof。 生成AOF文件后如需关闭同步,可使用redis-cli登录redis实例,输入命令“config set appendonly no”进行关闭。
  • 步骤1:安装Rump 下载Rump的release版本。 以64位Linux操作系统为例,执行以下命令: wget https://github.com/stickermule/rump/releases/download/0.0.3/rump-0.0.3-linux-amd64; 解压缩后,添加可执行权限。 mv rump-0.0.3-linux-amd64 rump; chmod +x rump;
  • 步骤2:迁移数据 rump -from {source_redis_address} -to {target_redis_address} 参数/选项说明: {source_redis_address} 源Redis实例地址,格式为:redis://[user:password@]host:port/db,中括号部分为可选项,实例设置了密码访问时需要填写密码,格式遵循RFC 3986规范。注意用户名可为空,但冒号不能省略,例如redis://:mypassword@192.168.0.45:6379/1。 db为数据库编号,不传则默认为0。 {target_redis_address} 目标Redis实例地址,格式与from相同。 以下示例表示将本地Redis数据库的第0个DB的数据迁移到192.168.0.153这台Redis数据库中,其中密码以*替代显示。 [root@ecs ~]# ./rump -from redis://127.0.0.1:6379/0 -to redis://:******@192.168.0.153:6379/0 .Sync done. [root@ecs ~]#
  • 迁移原理 Rump使用SCAN来获取keys,用DUMP/RESTORE来get/set值。 SCAN是一个时间复杂度O(1) 的命令,可以快速获得所有的key。DUMP/RESTORE使读/写值独立于关键工作。 以下是Rump的主要特性: 通过SCAN非阻塞的获取key,避免KEYS命令造成Redis服务阻塞。 支持所有数据类型的迁移。 把SCAN和DUMP/RESTORE操作放在同一个管道中,利用pipeline提升数据迁移过程中的网络效率。 不使用任何临时文件,不占用磁盘空间。 使用带缓冲区的channels,提升源服务器的性能。 Rump工具不支持迁移到DCS集群实例。请改用其他工具,如redis-shake或Redis-cli。 Redis实例的密码不能包含#@:等特殊字符,避免迁移命令解析出错。 建议停业务迁移。迁移过程中如果不断写入新的数据,可能会丢失少量Key。
  • 步骤3:创建迁移任务 登录分布式缓存服务控制台。 单击左侧菜单栏的“数据迁移”。页面显示迁移任务列表页面。 单击右上角的“创建备份导入任务”。 设置迁移任务名称和描述。 “源Redis”区域中,“数据来源”选择“OBS桶”,在“OBS桶名”中选择已上传备份文件的OBS桶。 根据需要选择“源DB”,您可以指定源端备份文件某一个DB中的数据,例如输入5时,则只迁移DB5中的数据;无需指定DB时,请保持置空,即迁移全部DB。 选择“是否多DB Proxy集群”,只有当源Redis数据为DCS Proxy集群实例,且开启了多DB(Proxy实例multi-db参数值为yes)时选择。 单击“添加备份文件”,选择需要迁移的备份文件。 图2 备份文件导入 图3 备份文件导入 在“目标Redis”区域,选择步骤1:准备目标Redis实例中准备的“目标Redis实例”。 如果目标Redis是密码访问模式,请输入密码后,单击“测试连接”,检查密码是否正确。免密访问的实例,请直接单击“测试连接”。 根据需要选择“目标DB”,您可以指定迁移数据到目标Redis的某一个DB中,例如输入5时,则迁移到目标Redis的DB5;不填表示不指定,默认迁移到与源端相同的DB中。 当源端为多DB,目标端为单DB的DCS实例时(单DB的实例只有DB0),需要源端的所有数据都在DB0,或者指定仅迁移源端某一DB中的数据并将目标端DB指定为0,否则会迁移失败。 DCS Redis的DB数请参见Redis实例是否支持多DB方式?。 单击“立即创建”。 确认迁移信息,然后单击“提交”,开始创建迁移任务。 可返回迁移任务列表中,观察对应的迁移任务的状态,迁移成功后,任务状态显示“成功”。
  • 步骤2:创建OBS桶并上传备份文件 通过OBS Browser+客户端,上传备份数据文件到OBS桶。 如果上传的备份文件较小,且小于5GB,请执行2,通过OBS控制台上传即可; 如果上传的备份文件大于5GB,请按照OBS服务提供的超过5GB如何上传操作指导执行。 通过OBS控制台,上传备份数据文件到OBS桶。 如果上传的备份文件较小,且小于5GB,请执如下步骤: 创建OBS桶。 在创建过程中,以下两个参数请按要求设置,其他详细的创建步骤,请参考《对象存储服务用户指南》的“创建桶”章节。 选择“区域”。 OBS桶所在区域必须跟Redis目标实例所在区域相同。 设置“存储类别”,当前支持“标准存储”、“低频访问存储”和“归档存储”。 请不要选择“归档存储”,否则会导致备份文件迁移失败。 设置完成后,单击“立即创建”,等待OBS桶创建完成。 在OBS管理控制台的桶列表中,单击2.a中的桶名称,进入“概览”页面。 在左侧导航栏,单击“对象”。 在“对象”页签下,单击“上传对象”,系统弹出“上传对象”对话框。 指定对象的存储类别。 请不要选择“归档存储”,否则会导致备份文件迁移失败。 上传对象。 您可以拖拽本地文件或文件夹至“上传对象”区域框内添加待上传的文件,也可以通过单击“上传对象”区域框内的“添加文件”,选择本地文件添加。 单次最多支持100个文件同时上传,总大小不超过5GB。 图1 批量上传对象 可选:勾选“KMS加密”,用于加密上传文件。 单击“上传”。
  • 场景描述 当前华为云DCS支持将其他云厂商Redis、自建Redis的数据通过DCS控制台迁移到华为云DCS的Redis。 您需要先将其他云厂商Redis、自建Redis的数据备份下载到本地,然后将备份数据文件上传到华为云与DCS Redis实例同一租户下相同Region下的OBS桶中,最后在DCS控制台创建迁移任务,DCS从OBS桶中读取数据,将数据迁移到DCS的Redis中。 上传OBS桶的文件支持.aof、.rdb、.zip、.tar.gz格式,您可以直接上传.aof和.rdb文件,也可以将.aof和.rdb文件压缩成.zip或.tar.gz文件,然后将压缩后的文件上传到OBS桶。
  • 前提条件 OBS桶所在区域必须跟Redis目标实例所在区域相同。例如,OBS桶和Redis所在的区域都为“华北-北京一”。 上传的数据文件必须为.aof、.rdb、.zip、.tar.gz的格式。 如果是其他云厂商的单机版Redis和主备版Redis,您需要在备份页面创建备份任务,然后下载备份文件。 如果是其他云厂商的集群版Redis,在备份页面创建备份后会有多个备份文件,每个备份文件对应集群中的一个分片,需要下载所有的备份文件,然后逐个上传到OBS桶。在迁移时,需要把所有分片的备份文件选中。
  • 步骤2:创建OBS桶并上传备份文件 通过OBS Browser+客户端,上传备份数据文件到OBS桶。 如果上传的备份文件较小,且小于5GB,请执行2,通过OBS控制台上传即可; 如果上传的备份文件大于5GB,请按照OBS服务提供的超过5GB如何上传操作指导执行。 通过OBS控制台,上传备份数据文件到OBS桶。 如果上传的备份文件较小,且小于5GB,请执如下步骤: 创建OBS桶。 在创建过程中,以下两个参数请按要求设置,其他详细的创建步骤,请参考《对象存储服务用户指南》的“创建桶”章节。 选择“区域”。 OBS桶所在区域必须跟Redis目标实例所在区域相同。 设置“存储类别”,当前支持“标准存储”、“低频访问存储”和“归档存储”。 请不要选择“归档存储”,否则会导致备份文件迁移失败。 设置完成后,单击“立即创建”,等待OBS桶创建完成。 在OBS管理控制台的桶列表中,单击2.a中的桶名称,进入“概览”页面。 在左侧导航栏,单击“对象”。 在“对象”页签下,单击“上传对象”,系统弹出“上传对象”对话框。 指定对象的存储类别。 请不要选择“归档存储”,否则会导致备份文件迁移失败。 上传对象。 您可以拖拽本地文件或文件夹至“上传对象”区域框内添加待上传的文件,也可以通过单击“上传对象”区域框内的“添加文件”,选择本地文件添加。 单次最多支持100个文件同时上传,总大小不超过5GB。 图1 批量上传对象 可选:勾选“KMS加密”,用于加密上传文件。 单击“上传”。
  • 前提条件 OBS桶所在区域必须跟Redis目标实例所在区域相同。例如,OBS桶和Redis所在的区域都为“华北-北京一”。 上传的数据文件必须为.aof、.rdb、.zip、.tar.gz的格式。 如果是其他云厂商的单机版Redis和主备版Redis,您需要在备份页面创建备份任务,然后下载备份文件。 如果是其他云厂商的集群版Redis,在备份页面创建备份后会有多个备份文件,每个备份文件对应集群中的一个分片,需要下载所有的备份文件,然后逐个上传到OBS桶。在迁移时,需要把所有分片的备份文件选中。
  • 步骤3:创建迁移任务 登录分布式缓存服务控制台。 单击左侧菜单栏的“数据迁移”。页面显示迁移任务列表页面。 单击右上角的“创建备份导入任务”。 设置迁移任务名称和描述。 “源Redis”区域中,“数据来源”选择“OBS桶”,在“OBS桶名”中选择已上传备份文件的OBS桶。 根据需要选择“源DB”,您可以指定源端备份文件某一个DB中的数据,例如输入5时,则只迁移DB5中的数据;无需指定DB时,请保持置空,即迁移全部DB。 选择“是否多DB Proxy集群”,只有当源Redis数据为DCS Proxy集群实例,且开启了多DB(Proxy实例multi-db参数值为yes)时选择。 单击“添加备份文件”,选择需要迁移的备份文件。 图2 备份文件导入 图3 备份文件导入 在“目标Redis”区域,选择步骤1:准备目标Redis实例中准备的“目标Redis实例”。 如果目标Redis是密码访问模式,请输入密码后,单击“测试连接”,检查密码是否正确。免密访问的实例,请直接单击“测试连接”。 根据需要选择“目标DB”,您可以指定迁移数据到目标Redis的某一个DB中,例如输入5时,则迁移到目标Redis的DB5;不填表示不指定,默认迁移到与源端相同的DB中。 当源端为多DB,目标端为单DB的DCS实例时(单DB的实例只有DB0),需要源端的所有数据都在DB0,或者指定仅迁移源端某一DB中的数据并将目标端DB指定为0,否则会迁移失败。 DCS Redis的DB数请参见Redis实例是否支持多DB方式?。 单击“立即创建”。 确认迁移信息,然后单击“提交”,开始创建迁移任务。 可返回迁移任务列表中,观察对应的迁移任务的状态,迁移成功后,任务状态显示“成功”。
  • 场景描述 当前华为云DCS支持将其他云厂商Redis、自建Redis的数据通过DCS控制台迁移到华为云DCS的Redis。 您需要先将其他云厂商Redis、自建Redis的数据备份下载到本地,然后将备份数据文件上传到华为云与DCS Redis实例同一租户下相同Region下的OBS桶中,最后在DCS控制台创建迁移任务,DCS从OBS桶中读取数据,将数据迁移到DCS的Redis中。 上传OBS桶的文件支持.aof、.rdb、.zip、.tar.gz格式,您可以直接上传.aof和.rdb文件,也可以将.aof和.rdb文件压缩成.zip或.tar.gz文件,然后将压缩后的文件上传到OBS桶。
  • 测试结果 以下测试结果仅供参考,不同局点环境和网络波动等客观条件可能产生性能差异。 QPS:即Query Per Second,表示每秒处理的读写操作数,单位是次/秒。 平均/最大时延:操作的平均/最大延迟时间,单位为毫秒(ms)。 x%延迟:指x%操作的延迟时间,单位为毫秒(ms)。例如该指标的值为10ms,99.99%延迟表示99.99%的请求可以在10ms内被处理。 表1 SET操作命令测试结果(未开启SSL场景) 实例规格 实例CPU类型 并发连接数(个) QPS 平均时延(ms) 99%延迟(ms) 99.9%延迟(ms) 8G X86 500 151047.41 3.355 6.175 12.223 1000 149346.86 6.673 11.711 31.743 32G X86 500 143648.1 3.476 5.215 13.055 4000 104517.03 37.881 139.263 175.103 表2 SET操作命令测试结果(开启SSL场景) 实例规格 实例CPU类型 并发连接数(个) QPS 平均时延(ms) 99%延迟(ms) 99.9%延迟(ms) 8G X86 500 86827.84 5.537 8.575 9.535 1000 92413.99 10.055 15.615 17.279 32G X86 500 87385.5 5.584 8.383 9.343 4000 50813.67 62.623 100.863 104.959 表3 GET操作命令测试结果(未开启SSL场景) 实例规格 实例CPU类型 并发连接数(个) QPS 平均时延(ms) 99%延迟(ms) 99.9%延迟(ms) 8G X86 500 180413.66 2.764 4.287 11.583 1000 179113.5 5.586 8.959 29.823 32G X86 500 175268.86 2.848 4.079 11.839 4000 134755.17 29.161 126.463 166.911 表4 GET操作命令测试结果(开启SSL场景) 实例规格 实例CPU类型 并发连接数(个) QPS 平均时延(ms) 99%延迟(ms) 99.9%延迟(ms) 8G X86 500 113637.22 4.316 6.239 7.359 1000 105504.55 8.962 13.439 15.295 32G X86 500 100309.99 4.603 6.559 6.943 4000 57007.69 55.052 85.503 89.087
  • 测试命令 未开启SSL场景: ./memtier_benchmark -s {IP} -p {port} -c {connect_number} -t {thread} -n allkeys --key-prefix="xxxx" --key-minimum=1 --key-maximum={max_key} --key-pattern=P:P --ratio=1:0 -d {datasize} 参数参考值:-c {connect_number}:1000,--key-maximum{max_key}:2000000,-d {datasize}:32。 开启SSL场景: ./memtier_benchmark -s {IP} -p {port} -c {connect_number} -t {thread} -n allkeys --key-prefix="xxxx" --key-minimum=1 --key-maximum={max_key} --key-pattern=P:P --ratio=1:0 -d {datasize} --tls --cacert ca.crt 参数参考值:-c {connect_number}:1000,--key-maximum{max_key}:2000000,-d {datasize}:32。
  • 迁移工具 表1 Redis迁移工具对比 工具/命令/服务 特点 说明 DCS控制台界面一键式迁移 操作简单,同时支持在线迁移和离线迁移(备份文件导入)两种方式,其中在线迁移支持增量数据迁移。 离线迁移,适用于源Redis和目标Redis网络不连通、源Redis不支持SYNC/PSYNC命令的场景。需要将数据备份文件导入到OBS,DCS从OBS桶中读取数据,将数据迁移到DCS的Redis中。 在线迁移,涉及到SYNC/PSYNC命令,适用于源Redis放通了SYNC/PSYNC命令的场景。支持将源Redis中的数据全量迁移或增量迁移到目标Redis中。 Redis-cli Redis自带命令行工具,支持导出RDB文件,也支持将持久化的AOF文件整库导入。 AOF文件为所有数据更改命令的全量集合,数据文件稍大。 - Rump 支持在线迁移,支持在同一个实例的不同数据库之间,以及不同实例的数据库之间迁移。 不支持增量迁移。 建议停业务后迁移,避免出现Key丢失。详情参考使用Rump在线迁移其他云厂商Redis。 Redis-Shake 在线迁移和离线迁移均支持的一款开源工具。 适用于Cluster集群的数据迁移。 自行开发迁移脚本 灵活,根据实际情况适配。 -
  • 迁移方案 自建Redis,指的是在华为云、其他云厂商、本地数据中心自行搭建的Redis。 表2 迁移方案 迁移场景 工具 迁移案例 迁移说明 自建Redis迁移至DCS DCS控制台界面一键式迁移 如果自建Redis和DCS Redis实例网络连通,推荐使用迁移任务在线迁移Redis实例。 如果自建Redis和DCS Redis实例网络不通,推荐使用备份文件离线迁移Redis实例。 - Redis-cli 使用Redis-cli迁移自建Redis(AOF文件) - 使用Redis-cli迁移自建Redis(RDB文件) - Redis-Shake 使用Redis-Shake工具迁移自建Redis Cluster集群 - DCS实例间迁移 DCS控制台界面一键式迁移 低版本Redis实例迁移到高版本Redis实例,例如Redis 3.0迁移至Redis 4.0/5.0/6.0: 如果源Redis实例和目标Redis实例的网络连通,推荐使用迁移任务在线迁移Redis实例。 如果网络不连通,推荐使用备份文件迁移不同Redis版本的实例。 由于Redis不同版本存在数据兼容问题,建议高版本不要迁移到低版本,否则迁移失败。 不同Region的Redis实例迁移,推荐使用备份文件迁移不同Region的实例。 由于DCS Redis实例默认是禁用了SYNC和PSYNC命令,在相同Region执行在线迁移时,会默认放通SYNC和PSYNC命令,但是在不同Region迁移时,没有放通该命令操作,所以无法使用在线迁移,推荐使用备份文件迁移。 不同账号的Redis实例迁移,例如从账号A迁移到账号B: 推荐使用备份文件迁移不同Redis版本的实例。 如果可以打通网络,也可以使用迁移任务在线迁移Redis实例。 - 其他云厂商Redis服务迁移至DCS DCS控制台界面一键式迁移 如果其他云厂商Redis服务,没有禁用SYNC和PSYNC命令,推荐使用迁移任务在线迁移其他云厂商Redis。 如果其他云厂商Redis服务,禁用了SYNC和PSYNC命令,推荐使用备份文件离线迁移其他云厂商Redis。 如果需要使用在线迁移,建议联系其他云厂商运维人员放通SYNC和PSYNC命令。 Rump 使用Rump在线迁移其他云厂商Redis - Redis-Shake 使用Redis-Shake离线迁移其他云厂商Redis - 使用Redis-shake在线迁移其他云厂商Redis -
  • 场景描述 当前华为云DCS支持将其他云厂商Redis、自建Redis的数据通过DCS控制台迁移到华为云DCS的Redis。 您需要先将其他云厂商Redis、自建Redis的数据备份下载到本地,然后将备份数据文件上传到华为云与DCS Redis实例同一租户下相同Region下的OBS桶中,最后在DCS控制台创建迁移任务,DCS从OBS桶中读取数据,将数据迁移到DCS的Redis中。 上传OBS桶的文件支持.aof、.rdb、.zip、.tar.gz格式,您可以直接上传.aof和.rdb文件,也可以将.aof和.rdb文件压缩成.zip或.tar.gz文件,然后将压缩后的文件上传到OBS桶。
  • 前提条件 OBS桶所在区域必须跟Redis目标实例所在区域相同。例如,OBS桶和Redis所在的区域都为“华北-北京一”。 上传的数据文件必须为.aof、.rdb、.zip、.tar.gz的格式。 如果是其他云厂商的单机版Redis和主备版Redis,您需要在备份页面创建备份任务,然后下载备份文件。 如果是其他云厂商的集群版Redis,在备份页面创建备份后会有多个备份文件,每个备份文件对应集群中的一个分片,需要下载所有的备份文件,然后逐个上传到OBS桶。在迁移时,需要把所有分片的备份文件选中。
  • 步骤2:创建OBS桶并上传备份文件 通过OBS Browser+客户端,上传备份数据文件到OBS桶。 如果上传的备份文件较小,且小于5GB,请执行2,通过OBS控制台上传即可; 如果上传的备份文件大于5GB,请按照OBS服务提供的超过5GB如何上传操作指导执行。 通过OBS控制台,上传备份数据文件到OBS桶。 如果上传的备份文件较小,且小于5GB,请执如下步骤: 创建OBS桶。 在创建过程中,以下两个参数请按要求设置,其他详细的创建步骤,请参考《对象存储服务用户指南》的“创建桶”章节。 选择“区域”。 OBS桶所在区域必须跟Redis目标实例所在区域相同。 设置“存储类别”,当前支持“标准存储”、“低频访问存储”和“归档存储”。 请不要选择“归档存储”,否则会导致备份文件迁移失败。 设置完成后,单击“立即创建”,等待OBS桶创建完成。 在OBS管理控制台的桶列表中,单击2.a中的桶名称,进入“概览”页面。 在左侧导航栏,单击“对象”。 在“对象”页签下,单击“上传对象”,系统弹出“上传对象”对话框。 指定对象的存储类别。 请不要选择“归档存储”,否则会导致备份文件迁移失败。 上传对象。 您可以拖拽本地文件或文件夹至“上传对象”区域框内添加待上传的文件,也可以通过单击“上传对象”区域框内的“添加文件”,选择本地文件添加。 单次最多支持100个文件同时上传,总大小不超过5GB。 图1 批量上传对象 可选:勾选“KMS加密”,用于加密上传文件。 单击“上传”。
  • 步骤3:创建迁移任务 登录分布式缓存服务控制台。 单击左侧菜单栏的“数据迁移”。页面显示迁移任务列表页面。 单击右上角的“创建备份导入任务”。 设置迁移任务名称和描述。 “源Redis”区域中,“数据来源”选择“OBS桶”,在“OBS桶名”中选择已上传备份文件的OBS桶。 根据需要选择“源DB”,您可以指定源端备份文件某一个DB中的数据,例如输入5时,则只迁移DB5中的数据;无需指定DB时,请保持置空,即迁移全部DB。 选择“是否多DB Proxy集群”,只有当源Redis数据为DCS Proxy集群实例,且开启了多DB(Proxy实例multi-db参数值为yes)时选择。 单击“添加备份文件”,选择需要迁移的备份文件。 图2 备份文件导入 图3 备份文件导入 在“目标Redis”区域,选择步骤1:准备目标Redis实例中准备的“目标Redis实例”。 如果目标Redis是密码访问模式,请输入密码后,单击“测试连接”,检查密码是否正确。免密访问的实例,请直接单击“测试连接”。 根据需要选择“目标DB”,您可以指定迁移数据到目标Redis的某一个DB中,例如输入5时,则迁移到目标Redis的DB5;不填表示不指定,默认迁移到与源端相同的DB中。 当源端为多DB,目标端为单DB的DCS实例时(单DB的实例只有DB0),需要源端的所有数据都在DB0,或者指定仅迁移源端某一DB中的数据并将目标端DB指定为0,否则会迁移失败。 DCS Redis的DB数请参见Redis实例是否支持多DB方式?。 单击“立即创建”。 确认迁移信息,然后单击“提交”,开始创建迁移任务。 可返回迁移任务列表中,观察对应的迁移任务的状态,迁移成功后,任务状态显示“成功”。
  • 测试结果 表1 迁移 源实例类型 源实例规格(GB) 目标实例类型 目标实例规格(GB) 迁移方式 数据量(GB) 时间(min) Redis 5.0主备 8 Redis 5.0主备 8 全量迁移+增量迁移 7.78 3 Redis 5.0主备 32 Redis 5.0主备 32 全量迁移+增量迁移 31.9 17 Redis 5.0 proxy 64 Redis 5.0proxy 64 全量迁移+增量迁移 62.42 7 Redis 5.0 cluster 64 Redis 5.0cluster 64 全量迁移+增量迁移 57.69 6 Redis 5.0 proxy 256 Redis 5.0proxy 256 全量迁移+增量迁移 241.48 23 Redis 5.0 cluster 256 Redis 5.0cluster 256 全量迁移+增量迁移 240.21 22 表2 备份 实例类型 实例规格(GB) 备份方式 数据量(GB) 时间(min) Redis 5.0主备 8 rdb 7.78 2 Redis 5.0主备 32 rdb 31.9 5 Redis 5.0 proxy 64 rdb 62.42 9 Redis 5.0 proxy 256 rdb 241.48 37 Redis 5.0 cluster 64 rdb 57.69 9 Redis 5.0 cluster 256 rdb 255 39 Redis 5.0主备 8 aof 7.9 2 Redis 5.0主备 32 aof 31.15 10 Redis 5.0 proxy 64 aof 62.42 20 Redis 5.0 proxy 256 aof 241.48 48 Redis 5.0 cluster 64 aof 57.69 19 Redis 5.0 cluster 256 aof 255 51 表3 恢复 实例类型 实例规格(GB) 恢复方式 数据量(GB) 时间(min) Redis 5.0主备 8 rdb 7.9 2 Redis 5.0主备 32 rdb 31.15 6 Redis 5.0 proxy 64 rdb 62.42 10 Redis 5.0 proxy 256 rdb 246 42 Redis 5.0 cluster 64 rdb 57.69 10 Redis 5.0 cluster 256 rdb 255 40 Redis 5.0主备 8 aof 7.9 3 Redis 5.0主备 32 aof 31.15 10 Redis 5.0 proxy 64 aof 62.42 10 Redis 5.0 proxy 256 aof 246 46 Redis 5.0 cluster 64 aof 57.69 10 Redis 5.0 cluster 256 aof 255 43
共100000条