使用redis-dump迁移redis

本文介绍了如何使用redis-dump工具进行Redis数据迁移,包括安装过程、数据导出的两种方法以及注意事项,强调了导入导出在同一主机执行和内网IP加速的重要性。

使用redis-dump迁移redis

首先是安装工具,过程如下(以CentOS7为例):

  • yum -y install ruby rubygems ruby-devel
  • gem sources -a http://gems.ruby-china.org此路不通,根据官方说明,需要把.org切换为.com,即正确的命令为:gem sources -a http://gems.ruby-china.com
  • gem install redis-dump -V 报错:redis requires Ruby version >= 2.2.2.,至此,需要升级Ruby,过程如下:
  • gem sources -a http://mirrors.aliyun.com/rubygems/
  • gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB
  • curl -sSL https://get.rvm.io | bash -s stable
  • source /etc/profile.d/rvm.sh
  • rvm -v查看可安装的版本
  • rvm install 2.5
  • gem update
  • gem install redis-dump -V,至此,安装完成

使用redis-dump导出有两种方法:

  • 第一种,导出 所有 数据:redis-dump -a "redis_passwd" -u redis://redis_host_ip:6379 > redis_dump.json成功导出Redis中的所有数据(6379为默认端口,根据实际需要进行修改)
  • 第二种,导出 指定库 的数据:redis-dump -a "redis_passwd" -u redis://redis_host_ip:6379 -d 5 > redis_dump_db_5.json成功导出了Redis5号库 的数据

导入数据

  • cat redis_dump.json | redis-load -a "redis_passwd_new" -u redis://redis_host_ip_new:6379

注释:

// 导出库的redis密码
redis_passwd

// 导出库的主机IP
redis_host_ip

// 导入库的redis密码
redis_passwd_new

// 导入库的主机IP
redis_host_ip_new

其他:

  • 导入与导出都在一台主机运行即可不需要在导入导出的两台机器上分别进行第一步的安装。整个过程共使用到两条命令: redis-dumpredis-load
  • 导入与导出的两台主机建议使用内网IP速度会比较快
  • 举例:如果需要将原来的5号库转移到新主机的6号库,那么需要编辑一下导出的redis_dump_db_5.json文件,将"db":5全部替换"db":6,然后保存。使用vi编辑器效率会高很多,命令是 :%s/"db":5/"db":6/g
### 如何在 Windows 上使用 `redis-dump` 进行 Redis 数据备份迁移 对于希望在 Windows 平台上利用 `redis-dump` 工具来执行 Redis 数据库的数据备份或是迁移工作的用户来说,主要挑战在于该工具原生支持 Unix-like 环境,在 Windows 下则需额外准备运行环境。 #### 准备工作 鉴于 `redis-dump` 基于 Ruby 编写而成[^4],所以在 Windows 中应用此工具前,首要任务便是搭建合适的 Ruby 开发环境: 1. **Ruby 安装** 推荐通过官方提供的 MSI 安装包直接安装最新稳定版本的 Ruby。下载链接可以从[RubyInstaller](https://rubyinstaller.org/)获取。确保勾选“Add Ruby executables to your PATH”选项以便后续可以直接调用 Ruby 及其 gem 包管理器。 2. **DevKit 配置** 对于某些 C 扩展的支持,还需要安装 DevKit 组件。同样可以在上述网站找到对应版本的 DevKit,并按照指引完成设置过程。 3. **安装 `redis-dump`** 使用 gem 来安装 `redis-dump` 插件: ```bash gem install redis-dump ``` #### 执行数据导出操作 一旦完成了以上准备工作,则可以借助如下命令实现对 Redis 数据集的序列化并保存至文件中: ```bash redis-dump -u "redis://localhost:6379" > dump.json ``` 这条指令会连接到本地默认端口上的 Redis 实例并将所有键值对转换成 JSON 格式的字符串输出重定向给名为 `dump.json` 的文件[^2]。 #### 将数据迁移到云端或其他位置 为了将已创建好的 `.json` 文件内的内容重新加载回新的 Redis 服务器(比如位于云环境中),可采用相反的过程——即读取 JSON 文件并向目标 Redis 发送相应的 SET 请求: ```bash cat dump.json | redis-load -u "redis://cloudserver:port" ``` 这里假定已经存在一个可以通过指定 URL 访问的目标 Redis 服务实例;实际情况下应当替换为真实的主机名与端口号组合[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值