redis数据迁移
发表于:2025-11-12 作者:千家信息网编辑
千家信息网最后更新 2025年11月12日,1.需求需要将一个redis实例中的部分keys,转移到另一个redis实例2.迁移方案2.1 源实例与目标实例版本相同2.1.1 使用dump命令#!/bin/bash#redis 源ipsrc_i
千家信息网最后更新 2025年11月12日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安全错误
数据库的锁怎样保障安全
当前主流的数据库是
虚拟空间和云服务器
数据库原型
软件开发技巧迷你世界
使用ip连接实验室服务器
广电网络公司网络技术是什么性质
网络安全感知管理平台
网络安全法总共几章
建行网络安全应急措施
数据库系统在哪里下载
微软香港服务器怎么样
专科学计算机网络技术怎么样
虚拟机服务器安装虚拟机的步骤
指南针软件开发有限公司
网络技术实训心得与体会
连接云数据库
北京海南耀天网络技术有限公司
食品安全危害数据库
服务器安全认证要求
服务器的存储器是什么
一个软件开发项目多少钱
网络安全等级保护标准解读
中国电信服务器连接超时
业务大厅如何防范网络安全
行政审批局网络安全应急处置方案
浅谈对数据库的认识论文
软件开发专业就业去向
湖北r740服务器云主机
网络技术学术论文
小学网络安全应急演练方案