redis数据迁移
发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,1.需求需要将一个redis实例中的部分keys,转移到另一个redis实例2.迁移方案2.1 源实例与目标实例版本相同2.1.1 使用dump命令#!/bin/bash#redis 源ipsrc_i
千家信息网最后更新 2026年11月02日redis数据迁移
1.需求
需要将一个redis实例中的部分keys,转移到另一个redis实例
2.迁移方案
2.1 源实例与目标实例版本相同
2.1.1 使用dump命令
#!/bin/bash#redis 源ipsrc_ip=127.0.0.1#redis 源portsrc_port=6392#redis 目的ipdest_ip=127.0.0.1#redis 目的portdest_port=6393#要迁移的key前缀key_prefix=testi=1redis-cli -h $src_ip -p $src_port keys "${key_prefix}*" | while read keydo redis-cli -h $dest_ip -p $dest_port del $key redis-cli -h $src_ip -p $src_port --raw dump $key | perl -pe 'chomp if eof' | redis-cli -h $dest_ip -p $dest_port -x restore $key 0 echo "$i migrate key $key" ((i++))done2.1.2 使用migrate命令
migrate用法:
MIGRATE host port key destination-db timeout [COPY] [REPLACE] 起始版本:2.6.0
时间复杂度:This command actually executes a DUMP+DEL in the source instance, and a RESTORE in the target instance. See the pages of these commands for time complexity. Also an O(N) data transfer between the two instances is performed.
迁移脚本
#!/bin/bash#redis 源ipsrc_ip=127.0.0.1#redis 源portsrc_port=6392#redis 目的ipdest_ip=127.0.0.1#redis 目的portdest_port=6393#要迁移的key前缀key_prefix=testi=1redis-cli -h $src_ip -p $src_port keys "${key_prefix}*" | while read keydo redis-cli -h $src_ip -p $src_port migrate $dest_ip $dest_port $key 0 1000 replace echo "$i migrate key $key" ((i++))done2.2 源实例与目标实例版本不相同
2.2.1 不可行方案
如果源实例与目标实例版本不相同,使用migrate进行迁移的时候会有如下错误:
1935 migrate key esf_common_auth_code_18587656289(error) ERR Target instance replied with error: ERR DUMP payload version or checksum are wrong如果源实例与目标实例版本不相同,使用dump进行迁移的时候会有如下错误
(error) ERR DUMP payload version or checksum are wrong- 如果源实例与目标实例版本不相同,直接复制rdbw文件搭建从库为有如下报错
5453:S 23 Nov 18:13:14.153 * MASTER <-> SLAVE sync: Flushing old data5453:S 23 Nov 18:13:14.153 * MASTER <-> SLAVE sync: Loading DB in memory5453:S 23 Nov 18:13:14.153 # Can't handle RDB format version 85453:S 23 Nov 18:13:14.153 # Failed trying to load the MASTER synchronization DB from disk
2.2.2 可行方案
开启源实例aof持久化功能
config set appendonly yes手动进行aof持久化
bgrewriteaof- 新建一个redis实例,与目标实例版本相同并启动
将源实例的redis的aof文件导入新建实例
redis-cli -h 127.0.0.1 -p 6395 -a password --pipe < appendonly.aof- 通过dump或者migrate的方式将新实例的key迁移到目标实例
实例
版本
目标
相同
目的
方案
前缀
命令
文件
时候
错误
可行
复杂
功能
复杂度
手动
方式
时间
脚本
部分
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
广州紫鲸互联网科技有限公司
科技互联网企业
中关村互联网科技集团
互联网金融 科技金融
艾特科技互联网
广州凡科互联网科技
沃里互联网科技
互联网金融 科技创新
左右互联网络科技
现代科技和互联网有关系吗
欧洲十大科技互联网公司
互联网企业和科技型企业
企晟互联网信息科技有限公司
佛山市拉法互联网科技有限公司
朱啸虎曾投资哪些互联网科技企业
互联网科技年终奖
宇信科技在杭州互联网排第几
互联网安防科技感
全球科技与互联网公司市值变化
张家口科技产业互联网平台
天津市摩尔互联网科技
互联网核心科技是什么
科技信息互联网
青岛互联网科技公司
互联网 新科技
全球顶尖互联网科技公司
科技互联网大厂
中国互联网有什么科技
扫呗互联网科技有限公司
互联网科技快速发展优美句子