一、参考:
https://tair-opensource.github.io/RedisShake/en/
https://tair-opensource.github.io/RedisShake/en/

二、实战
直接来干货吧,不泥带水
1、下载
https://github.com/tair-opensource/RedisShake/releases


2、准备RDB文件
我已腾讯云为例:

3、修改配置文件


注意[filter]里面不要加注释,否则会报错
Lua
# 要迁移的RDB文件
[rdb_reader]
# 本地RDB位置
filepath = "/Users/xxx/remore.rdb"
# 目的Redis
[redis_writer]
cluster = false
address = "IP:端口"
username = ""
password = "密码"
tls = false
rdb_restore_command_behavior = "rewrite"
[filter]
allow_db = [5]
function = """
if DB == 5 then
target_db = 3
else
target_db = DB
end
shake.call(target_db, ARGV)
"""
[advanced]
# 工作目录
dir = "data"
# 日志文件
log_file = "shake.log"
# 日志等级
log_level = "info"
# pipeline 并发数,越大写入越快
pipeline_count_limit = 1024
如果原redis和目的redis迁移的db相同,可以不需要加上下面这段配置:
Lua
function = """
if DB == 5 then
target_db = 3
else
target_db = DB
end
shake.call(target_db, ARGV)
"""
filter只保留这个即可:
Lua
[filter]
allow_db = [5]
4、开始迁移
mac可能出现:Apple无法验证"redis-shake"是否包含可能危害Mac安全或泄漏隐私的恶意软件。
你可以使用下面命令解决:
进入对应目录,执行:
bash
xattr -cr ./redis-shake
赋权并开始迁移:
bash
chmod +r shake.toml
bash
./redis-shake shake.toml
没有报错的话就是迁移成功。
