前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Redis集群到集群迁移

Redis集群到集群迁移

原创
作者头像
陈不成i
修改2021-05-21 14:27:14
1.2K0
修改2021-05-21 14:27:14
举报
文章被收录于专栏:ops技术分享ops技术分享

一.物理导入

简介

redis集群在存储数据时,是根据槽点进行存储。例如老集群A如下: 都在一台机器,实际可以在多台机器上。 主节点:7000(0-5460) 7001(5461-10922) 7002(10923-16383) 从节点:7003 7004 7005

那如果有10万数据,它们就会按照hash值进行计算,按槽点存储。每个槽点将存储一些数据,那槽点的拥有者也将拥有和存储那些数据。

实际操作

老集群:1.1.1.1 主节点:7000(0-5460) 7001(5461-10922) 7002(10923-16383) 从节点:7003 7004 7005

新集群:1.1.1.2 主节点:6000(0-3000) 6001(3001-5460) 6002(5461-10922) 6003(10923-16383) 从节点:6004 6005 6006 6007

可以发现新集群的节点多了一个,他把6000节点的曹点分了一些过去,承担压力。

将老集群的7000节点的appendonly.aof用pipe方法导入到6000节点上。再将同文件导入到6001节点上。肯定会有一半左右报错,因为那些值在hash后,槽点为3555,但你要导入到6000节点里,那是不接受的,其他对应的会导入进去。所以不用管报错,效验数据总数即可。

cat /redis/7000/appendonly.aof | redis-cli -c -p 6000 -h 1.1.1.2 --pipe cat /redis/7000/appendonly.aof | redis-cli -c -p 6001 -h 1.1.1.2 --pipe

aof文件里就是写入的命令语句,再利用pipe批量导入,是非常快捷而稳定的。

像上面,槽点是分开的,就都导入,多余的自然是没法写入的,只导入固定部分即可。然后用dbsize命令去对比一下所有节点总数据量,也要考虑数据中可能有过期策略的值,会导致数据总数一直减少。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一.物理导入
    • 简介
      • 实际操作
      相关产品与服务
      云数据库 Redis
      腾讯云数据库 Redis(TencentDB for Redis)是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档