问题描述
如何使用 Redis-port 导入物理备份 rdb 文件?
问题分析
缓存数据库 Redis 版 支持下载备份的 rdb 文件,然后通过 Redis-port 导入到新的实例中
模拟步骤
1.准备测试数据
使用 redis-benchmark 写入不同数据类型的数据
redis-benchmark -h redis-cnl*****.redis.volces.com -p 6379 -n 1000 -c 20 -a $password -t SET,MSET,LPUSH,HSET,SADD,RPUSH,INCR -r 100
====== SET ======
1000 requests completed in 0.02 seconds
20 parallel clients
3 bytes payload
keep alive: 1
100.00% <= 0 milliseconds
58823.53 requests per second
====== INCR ======
1000 requests completed in 0.01 seconds
20 parallel clients
3 bytes payload
keep alive: 1
100.00% <= 0 milliseconds
66666.67 requests per second
……
……
95.00% <= 201 milliseconds
99.60% <= 202 milliseconds
100.00% <= 202 milliseconds
1562.50 requests per second
备份下载
进入火山实例的管控界面,选择备份恢复,手动备份生成最新备份文件(业务低峰操作),或者下载已经备份过的文件。
下载redis-port 工具
下载和解压工具,可直接使用,无需编译。 在执行导出和导入操作的服务器上都需要安装 Redis-port。
wget https://github.com/CodisLabs/redis-port/releases/download/v2.0-beta/redis-port-v2.0-beta-go1.10.1-linux.tar.gz
# 解压安装后可以使用
tar -xvf redis-port-v2.0-beta-go1.10.1-linux.tar.gz
数据导入
[root@lxb-jms redis-port-v2.0-beta-go1.10.1-linux]# ./redis-restore ../redis-cn*******_0_20220****.rdb -t '$password'@redis-cn*******.redis.volces.com:6379
2022/08/30 15:43:46 restore.go:70: [INFO] restore: input = "../redis-cnlfgucet42pb7chs_0_20220823175959.rdb", aoflog = "" target = "Luxinbin0730@redis-cn028pyxgwbxf7l1z.redis.volces.com:6379"
2022/08/30 15:43:46 restore.go:126: [INFO] restore: (r,f,s/a,f,s) = (rdb,rdb.forward,rdb.skip/aof,rdb.forward,rdb.skip)
2022/08/30 15:43:47 restore.go:155: [INFO] restore: size = 77700 - [100.00%, 0.00%] (r,f,s/a,f,s)=(77700,0,0/0,0,0) ~ (75.88kb,-,-/0,-,-)
2022/08/30 15:43:48 restore.go:155: [INFO] restore: size = 77700 - [100.00%, 0.00%] (r,f,s/a,f,s)=(77700,0,0/0,0,0) ~ (75.88kb,-,-/0,-,-)
2022/08/30 15:43:49 restore.go:155: [INFO] restore: size = 77700 - [100.00%, 0.00%] (r,f,s/a,f,s)=(77700,0,0/0,0,0) ~ (75.88kb,-,-/0,-,-)
2022/08/30 15:43:50 restore.go:155: [INFO] restore: size = 77700 - [100.00%, 0.00%] (r,f,s/a,f,s)=(77700,0,0/0,0,0) ~ (75.88kb,-,-/0,-,-)
2022/08/30 15:43:51 restore.go:155: [INFO] restore: size = 77700 - [100.00%, 0.00%] (r,f,s/a,f,s)=(77700,0,0/0,0,0) ~ (75.88kb,-,-/0,-,-)
2022/08/30 15:43:52 restore.go:155: [INFO] restore: size = 77700 - [100.00%, 0.00%] (r,f,s/a,f,s)=(77700,0,0/0,0,0) ~ (75.88kb,-,-/0,-,-)
2022/08/30 15:43:53 restore.go:155: [INFO] restore: size = 77700 - [100.00%, 0.00%] (r,f,s/a,f,s)=(77700,0,0/0,0,0) ~ (75.88kb,-,-/0,-,-)
2022/08/30 15:43:54 restore.go:155: [INFO] restore: size = 77700 - [100.00%, 0.00%] (r,f,s/a,f,s)=(77700,0,0/0,0,0) ~ (75.88kb,-,-/0,-,-)
2022/08/30 15:43:55 restore.go:155: [INFO] restore: size = 77700 - [100.00%, 0.00%] (r,f,s/a,f,s)=(77700,0,0/0,0,0) ~ (75.88kb,-,-/0,-,-)
2022/08/30 15:43:56 restore.go:155: [INFO] restore: size = 77700 - [100.00%, 0.00%] (r,f,s/a,f,s)=(77700,0,0/0,0,0) ~ (75.88kb,-,-/0,-,-)
2022/08/30 15:43:57 restore.go:155: [INFO] restore: size = 77700 - [100.00%, 0.00%] (r,f,s/a,f,s)=(77700,1217,0/0,0,0) ~ (75.88kb,-,-/0,-,-)
2022/08/30 15:43:58 restore.go:155: [INFO] restore: size = 77700 - [100.00%, 0.00%] (r,f,s/a,f,s)=(77700,1217,0/0,0,0) ~ (75.88kb,-,-/0,-,-)
2022/08/30 15:43:59 restore.go:155: [INFO] restore: size = 77700 - [100.00%, 0.00%] (r,f,s/a,f,s)=(77700,1217,0/0,0,0) ~ (75.88kb,-,-/0,-,-)
2022/08/30 15:44:00 restore.go:155: [INFO] restore: size = 77700 - [100.00%, 0.00%] (r,f,s/a,f,s)=(77700,1217,0/0,0,0) ~ (75.88kb,-,-/0,-,-)
2022/08/30 15:44:01 restore.go:155: [INFO] restore: size = 77700 - [100.00%, 0.00%] (r,f,s/a,f,s)=(77700,1217,0/0,0,0) ~ (75.88kb,-,-/0,-,-)
2022/08/30 15:44:02 restore.go:155: [INFO] restore: size = 77700 - [100.00%, 0.00%] (r,f,s/a,f,s)=(77700,1217,0/0,0,0) ~ (75.88kb,-,-/0,-,-)
2022/08/30 15:44:02 restore.go:159: [INFO] restore: done
参考文档
https://github.com/CodisLabs/redis-port 如果您有其他问题,欢迎您联系火山引擎技术支持服务