redis扩容数据如何迁移_面试官:两个Redis集群 如何平滑数据迁移

项目推荐: https://gitee.com/log4j/pig

问题

由于生产环境的各种原因,我们需要对现有服务器进行迁移,包括线上正在运行的 redis 集群环境 如何去做?

涉及到数据源变动,原有数据如何平滑迁移到新实例,从而可以实现无缝迁移?

方案汇总

基于 redis 自身的RDB/AOF 备份机制

f0d1085b8a09196b39e227a85fb89415.png
  1. 执行 savebgsave 触发数据持久化 RDB文件
  2. 拷贝redis备份文件(dump.rdb)到目标机器
  3. 重启目标实例重新load RDB 文件
  • 关于 save/bgsave 的区别

命令 save bgsave IO阻塞 同步 异步 复杂度 O(n) O(n) 缺点 阻塞客户端 需要fork,消耗内存

基于 redis-dump导入导出 json备份

https://github.com/delano/redis-dump

b0b58f2b2ed1e09c6336f7527cda46d5.png

基于 redis-shake 实现 redis-cluster 迁移

https://github.com/alibaba/RedisShake

f49efe356fdac14e9023f21251ca45a4.png
  • 基于 Docker 创建两个集群
  • 配置 redis-shake.conf
  • 执行全量、增量同步
79603ca22a3e10e8e95c7a9767e2d1ea.gif
  • restful监控指标
23fd46f5ff5021e88ec3231728d15d44.png
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值