47人参与 • 2025-11-18 • Redis
redis-shake是阿里云技术团队开源的一款redis数据迁移与处理工具,支持数据迁移、备份、恢复和实时同步等多种功能。能够帮助你在不同redis环境之间稳定高效的移动数据。
核心功能
#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/
在这里定义源端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:"]
配置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
启动后,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实时同步内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
您想发表意见!!点此发布评论
版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。
发表评论