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