如何快速迁移redis - RedisShake(RDB方式)

一、参考:

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

没有报错的话就是迁移成功。

相关推荐
小冷coding5 小时前
【MySQL】MySQL 插入一条数据的完整流程(InnoDB 引擎)
数据库·mysql
鲨莎分不晴5 小时前
Redis 基本指令与命令详解
数据库·redis·缓存
专注echarts研发20年6 小时前
工业级 Qt 业务窗体标杆实现・ResearchForm 类深度解析
数据库·qt·系统架构
周杰伦的稻香8 小时前
MySQL中常见的慢查询与优化
android·数据库·mysql
冉冰学姐8 小时前
SSM学生社团管理系统jcjyw(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面
数据库·ssm 框架·学生社团管理系统·多角色管理
nvd119 小时前
深入分析:Pytest异步测试中的数据库会话事件循环问题
数据库·pytest
appearappear9 小时前
如何安全批量更新数据库某个字段
数据库
·云扬·10 小时前
MySQL 常见存储引擎详解及面试高频考点
数据库·mysql·面试
羊小猪~~10 小时前
【QT】--文件操作
前端·数据库·c++·后端·qt·qt6.3
coding-fun10 小时前
电子发票批量提取导出合并助手
大数据·数据库