Redis数据迁移

将集群 A 数据最终迁移到阿里云reids C 上

由于各种网络限制的原因,加了个中转的redis,当然这些ip都是假的

A (192.168.1.1)源集群

B (192.168.2.2) 中转数据

C (192.168.3.3) 目标集群

A只能与B通信 C也只能与B通信 ,C是个阿里云的pass服务,无法直接加载rdb文件

一、源集群A查看

  1. 连接redis集群

    ./redis-cli -c -h 192.168.1.1 -p 6379 -a '密码'

  2. 查看reids服务信息

    info server

  3. 统计数据库键空间的信息

    info keyspace

二、导出数据

2.1 导出rdb文件

bash 复制代码
/opt/redis/bin/redis-cli -c -h 192.168.1.1 -p 6379 -a 'kn88213**27' --rdb /data/great/dumped_source.rdb

2.2. 通过scp传输到B

bash 复制代码
scp -r -P 22 /data/great/dumped_source.rdb  root@192.168.2.2:/data/great/

三、搭建中转的redis B,并替换rdb文件

3.1 临时安装了一个redis 中转数据,安装步骤省略

3.2 . 停止redis服务

bash 复制代码
ps -ef|grep redis
kill -9 进程号

3.3. 将A导出的rdb文件,放到B下的数据目录

bash 复制代码
mv /data/great/dumped_source.rdb  /data/soft/redis/bin

3.4. 删除原来的dump.rdb,并替换

bash 复制代码
rm -rf dump.rdb
mv dumped_source.rdb dump.rdb

3.5 然后启动 B redis

bash 复制代码
./redis-server /etc/redis.conf

3.6. 登录查看数据是否恢复成功

bash 复制代码
/data/soft/redis/bin/redis-cli -p 6319
info keyspace

四、通过 redis-shake 工具将数据同步到 C 192.168.3.3

4.1 清空目标库

bash 复制代码
/data/soft/redis/bin/redis-cli -h 192.168.3.3 -p 6379 -a 'p8122295s9YtHUG3Yv7'

清空

bash 复制代码
select 3
flushdb

4.2 下载redis-shake工具解压,修改配置文件shake.toml
https://github.com/tair-opensource/RedisShake/releases

bash 复制代码
redis-shake-v4.5.0-linux-amd64.tar.gz

修改配置文件

bash 复制代码
cd /data/soft/shake 
vim shake.toml
bash 复制代码
[sync_reader]
address = "127.0.0.1:6319"
sync_aof = false 
[redis_writer]
address = "192.168.3.3:6379"
password = "122295s9YtHUG3Yv7"
[filter]
allow_db = [8]
function = """
if DB == 8 then
    shake.log("Moving key '" .. KEYS[1] .. "' from DB8 to DB7")
    shake.call(7, ARGV) -- 将命令的目标数据库改为 3
else
    -- 理论上,由于 allow_db=[8],这里的代码不会被执行到
    shake.log("Skipping DB " .. DB)
end
"""

4.3 启动redis-shake工具开始同步

bash 复制代码
./redis-shake shake.toml
相关推荐
小编码上说2 小时前
LSH(局部敏感哈希)分桶,海量数据下的相似性搜索解决方案
java·spring boot·缓存·langchain4j·lsh·局部敏感哈希·ai调用优化
wangbing11252 小时前
MySQL 官方 GPG 密钥过期问题
数据库·mysql
风筝在晴天搁浅2 小时前
LFU缓存
缓存
PaperData2 小时前
2000-2023年地级市数字基础设施评价指标体系
大数据·网络·数据库·人工智能·数据分析·经管
重生之我是Java开发战士2 小时前
【MySQL】事务 & 用户与权限管理
android·数据库·mysql
琢磨先生David3 小时前
电信行业数据库开发的一些经验
数据库·数据库开发
key_3_feng3 小时前
数据库Skill开发教程:从零构建SQLite应用
数据库·sqlite·skill
2301_812539673 小时前
Golang怎么实现网页爬虫抓取数据_Golang如何用colly框架快速构建爬虫采集程序【教程】
jvm·数据库·python
雪碧聊技术3 小时前
组合查询(union)
数据库·sql