redis-shake的使用windows版本

文章目录

介绍

原理

RedisShake 不是"客户端扫数据",而是把自己伪装成 Redis 的一个"从节点(Slave)",走的是 Redis 主从复制协议。

这和 Canal 伪装成 MySQL Slave 抓 binlog,思路一模一样。

安装

安装包

https://github.com/tair-opensource/RedisShake/releases#release-v4.4.0

选择redis-shake-v4.4.0-windows-amd64.tar.gz 选择amd64的这个。如何选择看下面的

  1. redis-shake-v4.4.0-windows-amd64.tar.gz
    适用对象:绝大多数 Windows 电脑(选这个)。
    说明:amd64 代表传统的 x86-64 架构。你的 Win11 电脑如果是 Intel(英特尔)或 AMD 的处理器(市面上 99% 的台式机和笔记本都是这种),下载这个就对了。
  2. redis-shake-v4.4.0-windows-arm64.tar.gz
    适用对象:搭载 ARM 架构处理器的 Windows 设备。
    说明:arm64 代表 ARM 架构。这类设备通常是 Surface Pro X、搭载高通骁龙处理器的轻薄本,或者某些特定的迷你主机(如苹果 M 系列芯片装了 Windows 虚拟机)。如果你的电脑是普通的 Intel/AMD 芯片,绝对不能下这个,否则解压运行会报错(提示"不是有效的 Win32 应用程序")。

解压

  • redis-shake(程序本体,11MB左右)
  • shake.toml(配置文件)

使用

第一步:编辑 shake.toml

在文件夹里右键点击 shake.toml -> 选择 "打开方式"​ -> 选择 "记事本"(或者用 VS Code、Notepad++ 等编辑器)。

找到[sync_reader]和[redis_writer]这两段,按你的实际情况修改。

第二步:填入你的 Redis 信息(参考模板)

假设你是在本机测试,源 Redis 在 6379 端口,目标 Redis 在 6380 端口,密码都是 123321。

请把 shake.toml 里的内容改成类似这样:

java 复制代码
# ========== 源 Redis 配置 (Sync Reader) ==========
[sync_reader]
# 源 Redis 地址,如果是本机就是 127.0.0.1
address = "127.0.0.1:6379"
# Redis 6.0 之前没有 username,留空
username = ""
# 你的 Redis 密码
password = "123456"
# 是否是集群,单机填 false
cluster = false
tls = false

# ========== 目标 Redis 配置 (Redis Writer) ==========
[redis_writer]
# 目标 Redis 地址
address = "127.0.0.1:6380"
# 目标 Redis 密码(如果有的话)
password = "123321"
# 是否是集群,单机填 false
cluster = false
tls = false

# ========== 高级设置 (可选,保持默认即可) ==========
[advanced]
# 并发数,你的 i7 CPU 可以设高一点
goroutine_num = 8
# 管道数量限制
pipeline_count_limit = 1024

注意:

如果你的源 Redis 和目标 Redis 是同一台机器,端口不同,上面的配置就行。

如果目标 Redis 在另一台服务器,把 address 改成那台服务器的 IP,比如 "192.168.1.100:6379"。

如果目标 Redis 没有密码,就把 password = "123321" 这一行删掉或注释掉(前面加 #)。

第三步:保存文件

改好后按 Ctrl + S 保存 shake.toml。

第四步:启动 RedisShake

启动顺序必须是:

① 先启动源 Redis(6379)

→ ② 再启动目标 Redis(6380)

→ ③ 最后启动 RedisShake

顺序错了,RedisShake 就会因为"找不到目标"而直接崩溃。

启动 RedisShake

在你截图的这个文件夹空白处,按住 Shift + 右键 -> 选择 "在此处打开 PowerShell 窗口"(或者"终端")。

输入以下命令启动:

java 复制代码
# 重命名
ren redis-shake redis-shake.exe

# 执行
.\redis-shake.exe shake.toml

(如果提示权限不足,右键 redis-shake.exe -> 属性 -> 兼容性 -> 勾选"以管理员身份运行此程序",然后再试)

启动后,你会看到控制台开始输出日志:

先输出 SYNC 相关的信息(表示开始全量同步)

然后可能输出 PSYNC 相关的信息(表示开始增量同步)

如果看到[INFO] incremental syncing...字样,说明同步正常进行中。

第五步:验证同步

打开两个 redis-cli 窗口,分别连接源 Redis(6379)和目标 Redis(6380)。

在源 Redis 里 set a 1,然后在目标 Redis 里 get a,看看是不是 1。

或者在目标 Redis 里执行 INFO replication,看看有没有 role:slave 和 connected_slaves 信息。

或者下面的可视化界面

你在6379添加key和value,6380会同步更新

相关推荐
cspttty31 分钟前
2027用户研究求职准备:应用统计学如何补齐研究设计与业务表达
大数据·数据库
我不会起名字3221 小时前
Redis 突然只能读不能写:MISCONF 报错的 3 类触发条件与 4 步恢复
运维·redis·持久化·排查·misconf
roman_日积跬步-终至千里2 小时前
【数据Agent论文·查询与语义|05】Spider:为什么换一个数据库,模型就不会查了?
数据库·数据分析
猫咪很可爱2 小时前
Oracle RAC 启动失败排查:私网通信与内核参数优化实战
运维·数据库·oracle
我不会起名字3222 小时前
Redis 从 0 到 1(九):主库宕机 30 秒自动切主——1 主 2 从 3 哨兵 + Go 客户端
redis·docker·sentinel·高可用·哨兵
XLYcmy2 小时前
《数字经济赋能城市低碳治理的路径研究检索报告》审阅与修改指导意见——基于完整检索报告体例的完整性诊断、学术规范核查与方法论纠偏 上
数据库·ai·chatgpt·文心一言·检索·知网·豆包
泡海椒2 小时前
JQuick-SQL 快速开始:注册内存表并执行查询
数据库·windows·sql
ss2733 小时前
PG实战笔记 | 09 PostgreSQL psql客户端基本操作
数据库·笔记·postgresql
电商API_180079052473 小时前
反向海淘多币种结算:汇率该在哪个时点被冻结
java·开发语言·数据库·跨境电商·1688 api
搞AI的金鱼3 小时前
skill agent workflow的区别
数据库