RedisShake

1 场景

数据迁移

架构变更

容灾恢复

2 准备知识

2.1 Redis 主从复制

  • Redis 版本 < 2.8 : SYNC 全量同步

  • Redis 版本 >= 2.8 : PSYNC 支持部分重同步

  • Redis 版本 >= 4.0 : PSYNC2 加强版部分重同步

3 功能

3.1 功能列表

RedisShake 的主要功能有解析、恢复、备份、同步。

  • 同步SYNC

支持源Redis和目的Redis的数据同步,支持全量和增量数据的迁移。

  • 同步RUMP

支持源Redis和目的Redis的数据同步,仅支持全量的迁移。

  • 备份DUMP

将源Redis的全量数据通过RDB文件备份起来。

  • 恢复Restore

将RDB文件恢复到目的Redis数据库。

  • 解析Decode

对RDB文件进行读取,并以json格式解析存储。

3.2 限制

3.2.1 版本

将 RDB 中的数据写入目标集群使用的 RESTORE 命令,使用了 RESTORE 命令的 ABSTTL 的参数,目标集群需要是 Redis 5.0 或以上版本

3.2.2 命令

不支持的命令
MULTI
EXEC

main

./cmd/redis-shake/main.go
> * create writer
> * create reader
>   * reader 读到数据后,将其放到 ch 管道中
>   * ch := theReader.StartRead() //ch = make(chan *entry.Entry, 1024)
> * start sync
>   * Go提供了 range 关键字,将其使用在 channel 上时,会自动等待 channel 的动作一直到channel被关闭
>   * 从管道中获取到封装后的 entry ,然后进行 filter 之后,然后进行写数据 theWriter.Write(e)

Last updated