redis数据迁移之通过redis-dump镜像

这里写目录标题

  • [一、redis-dump 镜像打包](#一、redis-dump 镜像打包)
    • [1.1 安装windows docker](#1.1 安装windows docker)
    • [1.2 idea项目创建](#1.2 idea项目创建)
    • [1.3 idea镜像打包](#1.3 idea镜像打包)
  • 二、redis数据迁移
    • [2.1 数据导出](#2.1 数据导出)
    • [2.2 数据导入](#2.2 数据导入)

一、redis-dump 镜像打包

没有找到可用的redis-dump镜像,需要自己打包一下,这里我是在idea直接打包的

1.1 安装windows docker

我没有可用的docker环境,有的话可用连接可用的docker环境,无需部署windows版docker

windows docker 下载安装:

https://docs.docker.com/desktop/setup/install/windows-install/

注意要配置国内镜像源,不然会有拉取不到镜像的可能

点击小齿轮进入设置页面,点击左侧菜单栏的docker engine ,设置国内镜像源,如下图所示:

设置国内镜像源

复制代码
{
  "builder": {
    "gc": {
      "defaultKeepStorage": "20GB",
      "enabled": true
    }
  },
  "experimental": false,
  "host": [
    "0.0.0.0:2375"
  ],
  "registry-mirrors": [
    "https://docker.mirrors.ustc.edu.cn",
    "https://registry.docker-cn.com",
    "http://hub-mirror.c.163.com",
    "https://mirror.ccs.tencentyun.com",
    "https://reg-mirror.qiniu.com",
    "https://do.nark.eu.org",
    "https://dc.j8.work",
    "https://docker.m.daocloud.io",
    "https://dockerproxy.com",
    "https://docker.nju.edu.cn"
  ]
}

1.2 idea项目创建

新建maven项目,其他类型的或许也可以,但平时建maven项目习惯了

新建dockerfile文件

目录结构如下:

dockerfile文件内容如下:

复制代码
FROM redis
RUN echo "" > /etc/apt/sources.list
RUN echo "deb http://mirrors.aliyun.com/debian/ bullseye main non-free contrib" >> /etc/apt/sources.list
RUN echo "deb http://mirrors.aliyun.com/debian-security/ bullseye-security main" >> /etc/apt/sources.list
RUN echo "deb http://mirrors.aliyun.com/debian/ bullseye-updates main non-free contrib" >> /etc/apt/sources.list
RUN echo "deb http://mirrors.aliyun.com/debian/ bullseye-backports main non-free contrib" >> /etc/apt/sources.list
RUN cat /etc/os-release
RUN redis-cli -v

RUN apt-get update && apt-get install ruby-dev -y \
    && apt-get install make -y \
    && apt-get install procps -y \
    && apt-get install gcc -y \
    && apt-get clean \
    && rm -rf /var/lib/apt/lists/*

# RUN gem sources -a http://ruby.taobao.org/
RUN gem install redis
RUN gem install uri
RUN gem install uri-redis
RUN gem install drydock
# RUN gem install highline
RUN gem install yajl-ruby --platform=ruby
RUN gem install redis-dump -V

1.3 idea镜像打包

点击 edit configurations

点击+,添加dockerfile

新建docker连接,我这里连接本地docker,使用的tcp连接方式

配置内容如图:

配置好后,点击运行:

查看生成的镜像

复制代码
PS D:\IdeaProjects\dockerTest> docker images
REPOSITORY     TAG      IMAGE ID       CREATED         SIZE
redis-dump     latest   f650cbe799ad   3 weeks ago     419MB

使用save命令保存,命令参考:菜鸟教程

二、redis数据迁移

2.1 数据导出

bash 复制代码
docker run redis-dump redis-dump -u redis://ip:6379 -d 0 > /redis-dump.json
# 或者也可以进入到容器内执行

2.2 数据导入

bash 复制代码
# 镜像启动
docker run redis-dump redis-dump
# 将json文件传入容器内
docker cp /redis-dump.json docker_id:/
# 进入容器
docker exec -it docker_id /bin/bash
# 数据导入
cat /redis-dump.json | redis-load -u:redis密码@ip:6379
相关推荐
霖霖总总39 分钟前
[小技巧19]MySQL 权限管理全指南:用户、角色、授权与安全实践
数据库·mysql·安全
heartbeat..5 小时前
Spring AOP 全面详解(通俗易懂 + 核心知识点 + 完整案例)
java·数据库·spring·aop
麦聪聊数据7 小时前
MySQL并发与锁:从“防止超卖”到排查“死锁”
数据库·sql·mysql
AC赳赳老秦8 小时前
DeepSeek 私有化部署避坑指南:敏感数据本地化处理与合规性检测详解
大数据·开发语言·数据库·人工智能·自动化·php·deepseek
YMatrix 官方技术社区9 小时前
YMatrix 存储引擎解密:MARS3 存储引擎如何超越传统行存、列存实现“时序+分析“场景性能大幅提升?
开发语言·数据库·时序数据库·数据库架构·智慧工厂·存储引擎·ymatrix
辞砚技术录10 小时前
MySQL面试题——索引2nd
数据库·mysql·面试
linweidong10 小时前
C++thread pool(线程池)设计应关注哪些扩展性问题?
java·数据库·c++
欧亚学术11 小时前
突发!刚刚新增17本期刊被剔除!
数据库·论文·sci·期刊·博士·scopus·发表
黑白极客11 小时前
怎么给字符串字段加索引?日志系统 一条更新语句是怎么执行的
java·数据库·sql·mysql·引擎
码农水水11 小时前
中国邮政Java面试:热点Key的探测和本地缓存方案
java·开发语言·windows·缓存·面试·职场和发展·kafka