基于Redis-Shake实现Redis实时同步的示例代码

 更新时间:2025年11月18日 08:29:24   作者:宇轩辞白  
本文主要介绍了基于Redis-Shake实现Redis实时同步的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

一、前言

Redis-Shake是阿里云技术团队开源的一款Redis数据迁移与处理工具,支持数据迁移、备份、恢复和实时同步等多种功能。能够帮助你在不同Redis环境之间稳定高效的移动数据。

核心功能

  • sync(同步):支持全量数据迁移和增量数据实时同步,适用于业务不停服迁移、异地容灾、多活架构
  • dump(备份):将源Redis的数据备份到RDB文件中,适用于为数据备份、数据恢复做准备
  • Restore(恢复):将RDB文件中的数据恢复到目标Redis实例。适用于数据恢复、从备份文件快速搭建新环境
  • rump(扫描): 通过SCMP命令迁移数据,适用于不支持SYNC/PSYNC命令的环境。适用于迁移Codis、Twemproxy等代理架构的数据

二、实施步骤

2.1 下载redis-shake二进制安装包

#wget https://github.com/alibaba/RedisShake/releases/download/v3.1.7/redis-shake-linux-amd64.tar.gz
#tar zxvf redis-shake-linux-amd64.tar.gz -C /root/

2.2 配置rsync模块文件

在这里定义源端redis和目标redis相关信息即可

[sync_reader]
address = "源Redis地址:端口"  # 例如:192.168.1.1:6379

[redis_writer]
address = "目标Redis地址:端口" # 例如:r-bp1xxxxx.redis.rds.aliyuncs.com:6379

[advanced]
parallel = 32  # 并发线程数,根据服务器性能调整

[filter]
# 可选:跳过以"temp:"或"cache:"开头的Key
block_key_prefix = ["temp:", "cache:"]

2.3 配置systemd

配置redis-shake服务,将其托管至systemd

#vim /etc/systemd/system/redis-shake.service
[Unit]
Description=RedisShake Data Sync Service
After=network.target

[Service]
Type=simple
User=root
Group=root
WorkingDirectory=/root/redis-shake
ExecStart=/root/redis-shake/redis-shake /root/redis-shake/sync.toml
Restart=always
RestartSec=10
StandardOutput=journal
StandardError=journal

[Install]
WantedBy=multi-user.target

2.4 启动并设置为自启

启动后,Redis-Shake会先在屏幕上打印全量同步的进度日志。当你看到 sync rdb done 的提示时,就意味着它已经进入了增量同步阶段,会持续将源实例的变更实时同步到目标实例

#systemctl daemon-reload
# systemctl enable --now redis-shake
Created symlink from /etc/systemd/system/multi-user.target.wants/redis-shake.service to /etc/systemd/system/redis-shake.service.

三、验证

测试我们可以在源端redis创建测试键值对。如下

127.0.0.1:6379> SELECT 1
OK
127.0.0.1:6379[1]> SET test_bxy "test_value1"
OK

在目标端redis验证 键值对是否同步过来。

redis-cli -h 192.168.x.x  -p 9736 -a 123456 -n 1 GET test_bxy

由此可见,目标端键值对数据已同步过来了。

到此这篇关于基于Redis-Shake实现Redis实时同步的示例代码的文章就介绍到这了,更多相关Redis-Shake Redis实时同步内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Redis Caffeine实现两级缓存的项目实践

    Redis Caffeine实现两级缓存的项目实践

    本文介绍了使用Redis和Caffeine实现两级缓存,以提高查询接口的性能,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-12-12
  • 浅谈Redis内存回收策略

    浅谈Redis内存回收策略

    本文主要介绍了浅谈Redis内存回收策略,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-06-06
  • Redis Sorted Set类型使用及应用场景

    Redis Sorted Set类型使用及应用场景

    Sorted Set是Redis常用的一种是数据类型,本文主要介绍了Redis Sorted Set类型使用及应用场景,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-06-06
  • Redis热点Key问题的完整解决方案:

    Redis热点Key问题的完整解决方案:

    热点Key就像双十一爆款商品,1%的Key承担了90%的流量!本文将用电商案例,教你如何智能分流、化解压力,并通过代码示例讲解的非常详细,需要的朋友可以参考下
    2025-08-08
  • Redis哨兵Sentinel的具体使用

    Redis哨兵Sentinel的具体使用

    本文主要介绍了Redis哨兵Sentinel的具体使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2025-08-08
  • 如何使用gradle将java项目推送至maven中央仓库

    如何使用gradle将java项目推送至maven中央仓库

    本文主要介绍了使用gradle将java项目推送至maven中央仓库,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-09-09
  • 虚拟机linux安装redis实现过程解析

    虚拟机linux安装redis实现过程解析

    这篇文章主要介绍了虚拟机linux安装redis实现过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-08-08
  • Redis排序命令Sort深入解析

    Redis排序命令Sort深入解析

    这篇文章主要为大家介绍了Redis排序命令Sort深入解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-12-12
  • Redis使用命令行与多数据库配置

    Redis使用命令行与多数据库配置

    本文详细讲解了Redis使用命令行与多数据库配置的方法,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-03-03
  • Redis缓存更新策略详解

    Redis缓存更新策略详解

    这篇文章主要为大家详细介绍了Redis缓存更新策略,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-07-07

最新评论