Redis(三)灾备部署

本文详细介绍了如何搭建Redis热备集群,包括升级版本、创建主-备复制、流量切换等步骤。同时,利用Redis-Shake工具进行数据同步,支持全量和增量迁移。数据同步后,通过redis-full-check进行数据校验,确保数据一致性。该工具适用于不同版本和类型的Redis之间的数据对比。
摘要由CSDN通过智能技术生成

一、热备Redis集群搭建

1、升级备机房redis集群版本,清除数据
2、创建主->备复制(同步所有流量到备集群)
3、切换nginx,停止一半服务流量B,修改配置,B连接到备机房redis集群
4、切换nginx,将流量切换到备redis服务B
5、修改主机房redis版本并启动,并将备机房数据同步到主机房redis ;
6、切换nginx,将流量切回到主机房redis,
7、停止连接备机房redis服务,修改配置到主机房redis,启动服务;
8、切换nginx,连接到所有服务上。
9、清理备机房redis数据,创建主->备复制

二、redis数据同步

数据同步采用Redis-Shake进行同步。
Redis-shake是一个基于golang语言开发的,用于在两个redis之间同步数据的工具,满足用户非常灵活的同步、迁移需求。
支持redis standalone、cluster、sentinel、proxies之间的数据迁移,

1、功能
  • 恢复restore:将RDB文件恢复到目的redis数据库。
  • 备份dump:将源redis的全量数据通过RDB文件备份起来。
  • 解析decode:对RDB文件进行读取,并以json格式解析存储。
  • 同步sync:支持源redis和目的redis的数据同步,支持全量和增量数据的迁移,支持从云下到阿里云云上的同步,也支持云下到云下不同环境的同步,支持单节点、主从版、集群版之间的互相同步。需要注意的是,如果源端是集群版,可以启动一个RedisShake,从不同的db结点进行拉取,同时源端不能开启move slot功能;对于目的端,如果是集群版,写入可以是1个或者多个db结点。
  • 同步rump:支持源redis和目的redis的数据同步,仅支持全量的迁移。采用scan和restore命令进行迁移,支持不同云厂商不同redis版本的迁移。
2、原理

redis-shake的基本原理就是模拟一个从节点加入源redis集群,首先进行全量拉取并回放,然后进行增量的拉取(通过psync命令)。
在这里插入图片描述
如果源端是集群模式,只需要启动一个redis-shake进行拉取,同时不能开启源端的move slot操作。如果目的端是集群模式,可以写入到一个结点,然后再进行slot的迁移,当然也可以多对多写入。
参考文档:
redis-shake数据同步&迁移工具

三、redis数据校验

数据同步后,通过redis-full-check校验工具。
支持:单节点、主从版、集群版、带proxy的云上集群版(阿里云)之间的同构或者异构对比,版本支持2.x-5.x。

1、原理

在这里插入图片描述
 redis-full-check通过全量对比源端和目的端的redis中的数据的方式来进行数据校验,其比较方式通过多轮次比较:每次都会抓取源和目的端的数据进行差异化比较,记录不一致的数据进入下轮对比(记录在sqlite3 db中)。然后通过多伦比较不断收敛,减少因数据增量同步导致的源库和目的库的数据不一致。最后sqlite中存在的数据就是最终的差异结果。
  redis-full-check对比的方向是单向:抓取源库A的数据,然后检测是否位于B中,反向不会检测,也就是说,它检测的是源库是否是目的库的子集。如果希望对比双向,则需要对比2次,第一次以A为源库,B为目的库,第二次以B为源库,A为目的库。
redis-full-check校验工具

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值