如何将redis转储从3.2版(无docker)恢复到6.0版(使用bitnami docker映像运行)

如何将redis转储从3.2版(无docker)恢复到6.0版(使用bitnami docker映像运行),docker,redis,docker-compose,restore,bitnami,Docker,Redis,Docker Compose,Restore,Bitnami,初始目标 目前,我们有一个旧版本的redis运行在单个物理服务器上(redis v3.2.1)。目标是使用sentinel for HA实现redis/slave拓扑。 实现这一点的一种方法是使用版本6创建此单一实例的从属。不幸的是,版本3和版本6之间存在icompatibility 我想做的事 我尝试将转储还原为版本。它很好用 然后我尝试恢复到版本,但失败了,并且 dump.rdb已自动完全替换为空文件 如何复制 通过以下方式安装redis的单个实例: apt安装-y redis服务器

初始目标
目前,我们有一个旧版本的redis运行在单个物理服务器上(redis v3.2.1)。目标是使用sentinel for HA实现redis/slave拓扑。 实现这一点的一种方法是使用版本6创建此单一实例的从属。不幸的是,版本3和版本6之间存在icompatibility

我想做的事

  • 我尝试将转储还原为版本。它很好用
  • 然后我尝试恢复到版本,但失败了,并且 dump.rdb已自动完全替换为空文件
如何复制

  • 通过以下方式安装redis的单个实例:
apt安装-y redis服务器redis工具

  • 使用此docker-compose.yml文件创建redis容器
docker compose up-d

docker stop redis master

#将
test_redis\u data\u master
替换到右侧文件夹

sudo cp dump.rdb/var/lib/docker/volumes/test\u redis\u data\u master/\u data/dump.rdb

使用此docker compose文件,它可用于v4.0.2-r0,但不能用于v4.0.2-r1。
此处的cf日志:
v4.0.2-r0

30:M 01 Dec 13:52:55.993#服务器已初始化30:M 01 Dec 13:52:58.049*DB从磁盘加载:2.056秒30:M 01十二月 13:52:58.049*准备接受连接
数据库已成功加载

v4.0.2-r1

20:M 01 Dec 13:49:05.472#服务器已初始化20:M 01 Dec 13:49:05.472*准备接受连接
数据库为空

结论 你能帮我解决这个问题吗。是否有人面临相同的问题或情况?

提前感谢您的帮助:D

您是否尝试过直接从4.0升级到5.0? 我不认为一个版本一个版本升级是个好主意,因为我们每天都会发布一个新版本,有时候,他们会用另一个版本修补错误。
除此之外,我建议您按照官方文档升级数据库。主要版本通常意味着不兼容的更改,所以我很确定您会发现一些问题。仅更改图像标签很可能无法工作。

您是否尝试过直接从4.0升级到5.0? 我不认为一个版本一个版本升级是个好主意,因为我们每天都会发布一个新版本,有时候,他们会用另一个版本修补错误。 除此之外,我建议您按照官方文档升级数据库。主要版本通常意味着不兼容的更改,所以我很确定您会发现一些问题。仅更改图像标记很可能不起作用

version: '2'

services:
  redis-master:
    #image: 'bitnami/redis:6.0'
    #image: 'bitnami/redis:4.0.2-r1'
    image: 'bitnami/redis:4.0.2-r0'
    container_name: redis-master
    volumes:
      - 'redis_data_master:/bitnami/redis/data'
    ports:
      - '6379:6379'
    environment:
      - REDIS_REPLICATION_MODE=master
      - ALLOW_EMPTY_PASSWORD=yes
      - REDIS_DISABLE_COMMANDS=FLUSHDB,FLUSHALL
volumes:
  redis_data_master:
    driver: local