news 2026/8/23 14:00:08

5条curl命令搞定Redis同步:RedisSyncer创建、启动、停止与查询任务实战

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
5条curl命令搞定Redis同步:RedisSyncer创建、启动、停止与查询任务实战

5条curl命令搞定Redis同步:RedisSyncer创建、启动、停止与查询任务实战

【免费下载链接】redissyncer-serverRedisSyncer是一个多任务的redis数据同步工具,可灵活的满足Redis间的数据同步、迁移需求; redissyncer is a redis synchronization tool, used in redis single instance and cluster synchronization项目地址: https://gitcode.com/gh_mirrors/re/redissyncer-server

RedisSyncer 是一个开源的多任务 Redis 数据同步工具,支持单实例与集群之间的数据同步和迁移。本文带你用 5 条 curl 命令走通 RedisSyncer 的任务创建、启动、查询、停止与删除全流程,10 分钟上手。

上图展示了 RedisSyncer 的核心架构:replicator负责从源 Redis 拉取数据(存量 RDB + 增量命令),transmission负责将数据写入目标 Redis,用户则通过底部的Restful API(也就是本文主角 curl 命令)来管理同步任务。

在分布式部署模式下,RedisSyncer 还包含 portal(任务调度)、server(执行同步任务)和 etcd(注册与健康上报)三类组件,支持多节点水平扩展。

一、准备工作:1分钟启动RedisSyncer服务

在执行 curl 命令前,先启动服务端。两种方式任选其一(详见 docs/quickstart.md):

方式1:jar 包启动

mvn clean package -Ddockerfile.skip java -jar syncer-webapp/syncer-webapp.jar

方式2:Docker 启动

docker run -idt -m 2G -p 8000:80 --name redissyncer redissyncer:v2.0.8

服务默认监听8080端口(Docker 示例映射为 8000)。假设 RedisSyncer 部署在10.0.0.100:8080,源 Redis 为192.168.0.10:6379,目标 Redis 为192.168.1.10:6379

二、命令1:创建同步任务(creattask)

这是最核心的一条命令,通过POST /api/v2/creattask描述"从哪个 Redis 同步到哪个 Redis":

curl -X POST \ http://10.0.0.100:8080/api/v2/creattask \ -H 'Content-Type: application/json' \ -d '{ "sourcePassword": "xxxxxx", "sourceRedisType": "SINGLE", "sourceRedisAddress": "192.168.0.10:6379", "targetRedisAddress": "192.168.1.10:6379", "targetRedisType": "SINGLE", "targetPassword": "xxxxxx", "targetRedisVersion": 4, "taskName": "firsttest" }'

成功返回:

{ "msg": "Task created successfully", "code": "2000", "data": { "taskids": ["10F7B3A0E5344598BAA9F847ADBFF9D6"] } }

💡 记住返回的taskid,它是任务唯一 ID,后续启动、停止、删除都要用它。当源库为集群时,任务会按集群节点数拆分成多个任务,每个任务一个 id。

常用可选参数速查

字段示例说明
tasktype"incrementonly"任务类型:stockonly仅存量 /incrementonly仅增量 /total存量+增量(默认)
dbMapper{"1": "1"}源→目标 db 映射关系,未列出的 db 不同步
filterType"KEY_FILTER_ACCEPT"key/命令过滤类型,支持正则
autostarttrue创建后自动启动,可省去第二条命令

集群地址用;分割,如"192.168.1.10:16379;192.168.1.10:16380"。完整的字段说明可参考 docs/3.3/createtask.md,文件类任务(AOF/RDB 文件同步)则参考 docs/3.3/createfiletask.md。

三、命令2:启动同步任务(starttask)

启动接口每次只支持单任务启动:

curl -X POST \ http://10.0.0.100:8080/api/v2/starttask \ -H 'Content-Type: application/json' \ -d '{ "taskid": "10F7B3A0E5344598BAA9F847ADBFF9D6", "afresh": false }'

其中afresh控制断点续传:设为false时从上次中断的 offset 继续;前提是任务之前已进入增量同步阶段且 offset 已记录,否则启动会失败。返回code: 2000即启动成功。

四、命令3:查询任务状态(listtasks)

同步中随时可以查看任务进度,支持按名称、ID、状态查询,也支持分页:

# 按任务名查询 curl -X POST \ http://10.0.0.100:8080/api/v2/listtasks \ -H 'Content-Type: application/json' \ -d '{ "regulation": "bynames", "tasknames": ["firsttest"] }'

regulation取值:all(全部)、bynamesbyidsbystatus。分页查询用/api/v2/listtasksByPage,追加currentPagepageSize即可。常见任务状态含义:

状态含义
CREATING/CREATED创建中 / 创建完成
STARTING启动中
RDBRUNING存量 RDB 数据同步中
COMMANDRUNING增量命令实时同步中
FINISH任务完成
BROKEN任务异常

五、命令4:停止同步任务(stoptask)

停止接口支持批量停止,taskids传数组即可:

curl -X POST \ http://10.0.0.100:8080/api/v2/stoptask \ -H 'Content-Type: application/json' \ -d '{ "taskids": ["10F7B3A0E5344598BAA9F847ADBFF9D6"] }'

返回code: 2000表示停止成功。若任务已停止,再次调用会提示"请先停止处于运行状态的任务"。

六、命令5:删除任务(removetask)

清理不再需要的非运行态任务:

curl -X POST \ http://10.0.0.100:8080/api/v2/removetask \ -H 'Content-Type: application/json' \ -d '{ "taskids": ["10F7B3A0E5344598BAA9F847ADBFF9D6"] }'

⚠️ 运行中的任务不能直接删除,必须先执行 stoptask 停止后再删除。

七、可视化面板:任务列表一目了然

除了 curl,RedisSyncer 还自带 Web 管理面板,创建、启动、停止、删除任务都可以在界面上点选完成,任务状态、同步进度一目了然:

八、实战避坑清单 📝

  • 主从源只填一个节点:源端为主从架构时,只填主节点地址,填多个会导致数据同步两份。
  • 留足内存与带宽:同步前确认源机器内存足够生成至少一个 RDB 文件;建议 RedisSyncer 部署在独立空闲机器上。
  • 调大 slave 缓冲区:注意client-output-buffer-limit的 slave 项,buffer size 与超时时间要设置足够大,防止 RDB 传输被断开。
  • 多观察日志:迁移中和业务切换前,反复查看日志(位置~/log)确认无异常,并充分核对数据一致性。
  • 状态码含义2000成功、4007任务不存在或已在运行、4020不存在指定任务 id、400JSON 格式错误。

以上 5 条 curl 命令覆盖了 RedisSyncer 任务管理的完整生命周期。更多 API 参数细节可查阅 docs/api.md,典型场景案例可参考 docs/scenecases.md。

【免费下载链接】redissyncer-serverRedisSyncer是一个多任务的redis数据同步工具,可灵活的满足Redis间的数据同步、迁移需求; redissyncer is a redis synchronization tool, used in redis single instance and cluster synchronization项目地址: https://gitcode.com/gh_mirrors/re/redissyncer-server

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/23 13:58:28

HackRF驱动问题排查:3步跑起来

HackRF驱动问题排查:3步跑起来 【免费下载链接】hackrf low cost software radio platform 项目地址: https://gitcode.com/gh_mirrors/ha/hackrf 把 HackRF 插到 Windows 机器上,最常见的开源硬件驱动问题就三类:设备管理器里根本看不…

作者头像 李华
网站建设 2026/8/23 13:56:45

PDFMathTranslate:免费公式级PDF论文翻译

PDFMathTranslate:免费公式级PDF论文翻译 【免费下载链接】PDFMathTranslate [EMNLP 2025 Demo] PDF scientific paper translation with preserved formats - 基于 AI 完整保留排版的 PDF 文档全文双语翻译,支持 Google/DeepL/Ollama/OpenAI 等服务&…

作者头像 李华
网站建设 2026/8/23 13:55:46

单链表专题

前言 顺序表和单链表都是两种常见的数据结构,他们的区别究竟在哪里? 顺序表:顺序表是一种连续的存储结构,数据元素在内存中占据一块连续的空间。因为连续空间存储的特性,顺序表可以直接通过下表遍历元素。 单链表&a…

作者头像 李华
网站建设 2026/8/23 13:52:02

从awesome-python3-webapp到iOS App:跨平台开发实战经验完整指南

从awesome-python3-webapp到iOS App:跨平台开发实战经验完整指南 【免费下载链接】awesome-python3-webapp 小白的Python入门教程实战篇 项目地址: https://gitcode.com/gh_mirrors/aw/awesome-python3-webapp awesome-python3-webapp 是一个面向小白的 Pyth…

作者头像 李华
网站建设 2026/8/23 13:49:23

Xplorer文件管理器完全上手指南:跨平台文件管理一次搞定

Xplorer文件管理器完全上手指南:跨平台文件管理一次搞定 【免费下载链接】xplorer Xplorer, a customizable, modern file manager 项目地址: https://gitcode.com/gh_mirrors/xp/xplorer Xplorer文件管理器是一款免费开源的跨平台文件管理器,Win…

作者头像 李华