前言
一个 Redis 需要从另一个 Redis 数据同步
或者 数据迁移
,这种一般怎么做?
数据迁移
这种一般比较好做,可以直接从源redis导出rdb,再把rdb文件导入目标redis。但是如果需要实时增量同步就比较困难,有什么好的方法解决这种需求,这里介绍下阿里云开源 redis-shake
工具。
redis-shake
项目地址:https://github.com/alibaba/RedisShake
基本功能
redis-shake
:是我们基于redis-port
基础上进行改进的一款产品。它支持解析
、恢复
、备份
、同步
四个功能。以下主要介绍同步sync
。
恢复restore
:将RDB文件恢复到目的redis数据库。备份dump
:将源redis的全量数据通过RDB文件备份起来。解析decode
:对RDB文件进行读取,并以json格式解析存储。同步sync
:支持源redis和目的redis的数据同步,支持全量和增量数据的迁移,支持从云下到阿里云云- 上的同步,也支持云下到云下不同环境的同步,支持单节点、主从版、集群版之间的互相同步。需要注意- 的是,如果源端是集群版,可以启动一个RedisShake,从不同的db结点进行拉取,同时源端不能开启- move slot功能;对于目的端,如果是集群版,写入可以是1个或者多个db结点。同步rump
:支持源redis和目的redis的数据同步,仅支持全量的迁移。采用scan和restore命令进行迁移,支持不同云厂商不同redis版本的迁移。