分布式缓存服务 DCS
分布式缓存服务 DCS
- 最新动态
- 功能总览
- 服务公告
- 产品介绍
- 计费说明
- 快速入门
- 用户指南
- 最佳实践
- API参考
- SDK参考
-
常见问题
- 实例类型/版本
- 实例特性
- 安全性
-
客户端和网络连接
- DCS实例支持公网访问吗?
- Redis连接失败问题排查和解决
- DCS实例是否支持跨VPC访问?
- Redis公网访问所需弹性IP是否收费?
- Redis连接时报错:“(error) NOAUTH Authentication required”。
- 客户Http的Server端关闭导致Redis访问失败
- 客户端出现概率性超时错误
- 使用Jedis连接池报错如何处理?
- 如何使用Redis-desktop-manager访问Redis实例?
- 使用SpringCloud时出现ERR Unsupported CONFIG subcommand怎么办?
- 客户端无法使用域名连接DCS缓存实例时如何处理?
- 本地环境是否可以连接缓存实例?
- 使用Redis实例的发布订阅(pubsub)有哪些注意事项?
- Redis 3.0实例公网开关被关闭是什么原因?
- 使用短连接访问Redis出现“Cannot assign requested address”错误
- 连接池选择及Jedis连接池参数配置建议
- 如何解决Lettuce 6.x版本客户端使用DCS实例兼容性问题?
- 应该选择域名还是IP地址连接Redis实例?
- 主备实例的只读地址是连接到主节点还是备节点?
-
Redis使用
- 是否支持CPU架构的变更?
- 实例是否支持变更可用区
- Redis实例能否修改VPC和子网?
- 实例是否支持自定义或修改端口?
- 实例是否支持修改访问地址?
- 实例无法删除是什么原因?
- 集群实例启动时间过长是什么原因?
- 使用redis_exporter出错怎么办?
- 什么是预留内存,如何配置预留内存?
- 创建的缓存实例为什么可使用内存比实例规格少一些?
- Redis 3.0 Proxy集群不支持redisson分布式锁的原因
- DCS Redis有没有后台管理软件?
- DCS缓存实例的数据被删除后,能否找回?
- 为什么实例实际可用内存比申请规格小而且已使用内存不为0?
- 如何查看Redis内存占用量
- Cluster集群实例容量和性能未达到瓶颈,但某个分片容量或性能已过载是什么原因?
- 访问Redis报OOM错误提示
- 不同编程语言如何使用Cluster集群客户端
- 使用Cluster的Redis集群时建议配置合理的超时时间
- 读取redis数据报超时错误
- hashtag的原理、规则及用法示例
- Redis key丢失是什么原因
- 重启实例后缓存数据会保留吗?
- 如何确认实例是单DB还是多DB
- Proxy集群开启多DB的使用限制及操作方式
- 如何创建多DB的Proxy集群实例?
- 扩容缩容与实例升级
-
数据备份/导出/迁移
- DCS实例是否兼容低版本Redis迁移到高版本
- 不同类型的操作系统间进行数据传递和操作,需要注意什么?
- 源Redis使用了多DB,能否迁移数据到集群实例?
- 源Redis迁移到集群实例中有哪些限制和注意事项?
- 在线迁移需要注意哪些?
- 在线迁移能否做到完全不中断业务?
- 在线迁移实例源端报“Disconnecting timedout slave”和“overcoming of output buffer limits”
- 如何导出Redis实例数据?
- 使用Rump工具迁移数据,命令执行后无报错,但Redis容量无变化
- 是否支持控制台导出RDB格式的Redis备份文件?
- 缓存实例备份文件如何存放?备份文件的数量是否有限制?
- Redis在线数据迁移是迁移整个实例数据么?
- AOF文件在什么情况下会被重写
- Redis迁移失败有哪些常见原因?
- 一个数据迁移能迁移到多个目标实例么?
- 怎么放通SYNC和PSYNC命令?
- 迁移或导入备份数据时,相同的Key会被覆盖吗?
- Cluster集群实例使用内置key且跨slot的Lua脚本时迁移失败
- 迁移故障处理
- 数据迁移失败问题排查
- Memcached如何迁移?
- 是否支持Memcached和Redis之间实例数据的迁移?
- 大Key/热Key分析/过期Key扫描
- Redis命令
- 监控告警
- 主备倒换
- 创建实例和权限
- Memcached使用
- 故障排除
- 视频帮助
- 文档下载
- 通用参考
链接复制成功!
使用RedisShake工具离线迁移自建Redis Cluster集群
RedisShake是一款开源的Redis迁移工具,支持Cluster集群的在线迁移与离线迁移(备份文件导入)。DCS Cluster集群与Redis Cluster集群设计一致,数据可平滑迁移。
本文以Linux系统环境为例,介绍如何使用RedisShake工具将自建的Redis Cluster离线迁移到DCS Cluster集群。
与在线迁移相比,离线迁移适用于源实例与目标实例的网络无法连通,或者源端实例部署在其他云厂商Redis服务中,无法实现在线迁移的场景。
约束与限制
开启了SSL的目标实例不支持数据迁移,需要关闭目标实例SSL后再进行迁移,开启或关闭SSL的操作请参考配置Redis SSL数据加密传输。
前提条件
获取源Redis和目标Redis节点信息
- 分别连接源端和目标端Redis。连接Redis的方法请参考Redis-cli客户端连接Redis。
- 在线迁移Cluster集群时需要将Cluster集群各个节点数据分别迁移。执行如下命令分别查询源端和目标Cluster集群的所有节点的IP地址与端口:
redis-cli -h {redis_address} -p {redis_port} -a {redis_password} cluster nodes
{redis_address}为Redis的连接地址,{redis_port}为Redis的端口,{redis_password}为Redis的连接密码。
在命令返回的结果中,获取所有master节点的IP端口,如下图所示。
安装RedisShake
- 登录弹性云服务器ECS。
- 在ECS中执行以下命令下载RedisShake。本文以下载2.1.2版本为例,您可以根据实际需要下载其他RedisShake版本。
wget https://github.com/tair-opensource/RedisShake/releases/download/release-v2.1.2-20220329/release-v2.1.2-20220329.tar.gz
- 执行命令解压RedisShake文件。
tar -xvf redis-shake-v2.1.2.tar.gz
导出备份文件
- 执行命令进入解压后的RedisShake文件目录。
cd redis-shake-v2.0.3
- 编辑RedisShake工具配置文件redis-shake.conf,补充源端所有master节点的连接信息。
vim redis-shake.conf
修改内容如下:source.type = cluster #如果无密码,本项不填 source.password_raw = {source_redis_password} #源Cluster集群所有master节点的IP地址与端口,以分号分隔 source.address = {master1_ip}:{master1_port};{master2_ip}:{master2_port}…{masterN_ip}:{masterN_port}
修改后按下Esc键退出编辑模式,输入:wq!按回车键保存配置并退出编辑界面。
- 执行以下命令导出源Redis集群的RDB格式备份文件。
./redis-shake -type dump -conf redis-shake.conf
执行日志中出现如下信息时导出备份文件完成:
execute runner[*run.CmdDump] finished!
导入备份文件
- 将导出的RDB备份文件(含多个)上传到与云服务器上。云服务器与目标端DCS Cluster集群实例的网络连通。
- 编辑RedisShake工具配置文件redis-shake.conf。补充目标端所有master节点的连接信息。
vim redis-shake.conf
修改内容如下:target.type = cluster #如果无密码,本项不填 target.password_raw = {target_redis_password} #目标Cluster集群所有master节点的IP地址与端口,以分号分隔 target.address = {master1_ip}:{master1_port};{master2_ip}:{master2_port}…{masterN_ip}:{masterN_port} #需要导入的rdb文件列表,用分号分隔 rdb.input = {local_dump.0};{local_dump.1};{local_dump.2};{local_dump.3}
修改后按下Esc键退出编辑模式,输入:wq!按回车键保存配置并退出编辑界面。
- 使用如下命令导入RDB备份文件到目标Cluster集群:
./redis-shake -type restore -conf redis-shake.conf
执行日志中出现如下信息时导入备份文件完成:
Enabled http stats, set status (incr), and wait forever.
迁移后验证
- 数据同步结束后,连接DCS Cluster集群,连接Redis的方法请参考Redis-cli客户端连接Redis。
- 通过info命令查看Keyspace中的Key数量,确认数据是否完整导入。
- 迁移验证完成后,删除RedisShake配置文件。
父主题: 自建Redis迁移至DCS