AWS托管的Valkey数据转移到社区Redis.io去

这还真是个大活,耗费了整整一天的时间。

究其原因根本就是无论AWS托管的Valkey还是社区的Redis.io,都是被魔改过的阉割版,真是无语他妈给无语开门,无语到家了!

说一下详细的过程:

接到这个任务,首先想到的是同步软件redis-Gunyu

https://github.com/mgtv-tech/redis-GunYu

结果是失败,原因很奇葩,因为aws valkey是必须带tls连接的,Gunyu不支持,放弃。

然后找到了redis-shake

https://tair-opensource.github.io/RedisShake

结果还是失败,理由是不支持PSync,用了scan_reader也失败

image-20250820141906654

然后就又想到了万能的ChatGPT和Google的Gemini,分别给了2个python程序,也是失败

原因是不支持Migrate命令,而且valkey是基于redis 7.2改的,而Redis.io是8.0,命令不兼容

走投无路之下想到了rdb-tools,先把valkey做个备份,放到S3桶里

 1valeky-20250819-0001.rdb
 2valeky-20250819-0002.rdb
 3valeky-20250819-0003.rdb
 4valeky-20250819-0004.rdb
 5valeky-20250819-0005.rdb
 6valeky-20250819-config.json
 7
 8cat valeky-20250819-config.json 
 9{
10  "valeky-20250819/valeky-20250819-0002.rdb" : {
11    "Slots" : "0-5496",
12    "rdbSize" : "5234516"
13  },
14  "valeky-20250819/valeky-20250819-0004.rdb" : {
15    "Slots" : "5497-8375",
16    "rdbSize" : "4340658"
17  },
18  "valeky-20250819/valeky-20250819-0003.rdb" : {
19    "Slots" : "10082-16383",
20    "rdbSize" : "5962581"
21  },
22  "valeky-20250819/valeky-20250819-0001.rdb" : {
23    "Slots" : "8376",
24    "rdbSize" : "2218"
25  },
26  "valeky-20250819/valeky-20250819-0005.rdb" : {
27    "Slots" : "8377-10081",
28    "rdbSize" : "1540505"
29  }
30}

看起来是5个rdb备份,每个文件对应redis不同的slots

用rdb来解析备份文件,结果失败,因为不认识valkey rdb的版本。

没办法了,又找到了这个软件

https://github.com/HDT3213/rdb

下载后,首先想处理成json文件,然后灌入到redis.io

1./rdb-linux-amd64 -c json -o 0001.json valeky-20250819-0001.rdb

失败,因为json文件灌入的时候redis.io又被阉割了,命令不支持

走投无路,走投无路,走投无路啊!!!欲哭无泪,欲哭无泪,欲哭无泪啊!!!

没办法了,用redis-shake把rdb文件逐个灌进去

1[rdb_reader]
2filepath = "/root/redis/rdbs/valeky-20250819-0001.rdb"
3
4[redis_writer]
5cluster = false
6address = "redis-22222.c1.ap-southeast-1-1.ec2.redns.redis-cloud.com:22222"
7username = "default"              
8password = "ABCDEFG"          
9tls = false

执行了5次,就可以了。

后续啊:可以先去下个rdt

https://github.com/leonchen83/redis-rdb-cli/

把5个rdb合成一个,然后再灌入。

1./rdt -m ../../valeky-20250819-0001.rdb ../../valeky-20250819-0002.rdb ../../valeky-20250819-0003.rdb ../../valeky-20250819-0004.rdb ../../valeky-20250819-0005.rdb -o all.rdb

真的是累死了。


Ocserv VPN的安装和使用
comments powered by Disqus