3

redis クラスター 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 イメージをプルするか、基本的な OS イメージをプルして手動で 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 に答える