3

我已经安装了redis cluster 3.0.0。但是想升级到3.0.7。有人可以告诉我这样做的步骤吗?

我不想丢失任何数据。也不希望有任何停机时间。

4

1 回答 1

0

我从 2.9.101 升级到 3.0 版本时执行的步骤。我希望它也可以升级到 3.0.7。

  • 从源代码编译 3.0.7 并启动多个启用集群的实例。
  • 让 3.0.7 实例将 3.0.0 实例复制为从属
  • 连接到每个 3.0.7 实例并进行手动故障转移,然后 3.0.0 主服务器将在几秒钟后变为从服务器。
  • 等待您的应用程序连接到新的主节点;还要检查配置文件,并根据需要将条目修改为新的主人
  • 移除那些奴隶

更新:Docker方法

由于它可能无法在进程仍然存在时替换二进制可执行文件,因此您可以通过在docker中运行一些 Redis 来完成。

首先,您应该在您的机器上安装 docker 并拉取 Redis 映像,或者拉取一个基本的操作系统映像并在其中手动构建 Redis,无论如何

根据这张图片,你应该

  • 将您的当前复制redis.conf到其中
  • 确保dir图像中存在(cluster-config-file所有容器可能相同,因为它们单独保存在自己的 fs 中)
  • 确保目录logfile存在且不一样dir(我们稍后会将此目录映射到主机)
  • 留下port logfile任何你喜欢的东西,因为它们是在容器启动时指定的
  • 将图像提交为redis-3.0.7

现在启动一个容器化的 Redis。我想您logfile位于/var/log/redis/,此 Redis 绑定:8000,并且您在图像中的配置文件是/etc/redis/redis.conf

docker run -d --net=host -v /var/log/redis:/var/log/redis \
        -p 8000:8000 -t redis-3.0.7 \
    /usr/bin/redis-server /etc/redis/redis.conf \
        --port 8000 \
        --logfile /var/log/redis/redis_8000.log

现在您有一个 Redis 3.0.7 实例,并准备好完成上一部分中的其余步骤。

于 2016-05-11T04:26:17.203 回答