77

リモートサーバーを使用して、redis スナップショット (dump.rdbファイル) を転送しました。scpこのリモートで redis サーバーを実行し、dump.rdbファイルからデータを復元する必要があります。どうやってやるの?

4

9 に答える 9

68

特に行うことはありません。新しいマシンに redis サーバーをインストールし、構成ファイルを編集するだけです。コピーしたばかりのダンプ ファイルの場所を指すように、次のパラメーターを変更するだけです。

# The filename where to dump the DB
dbfilename mydump.rdb

# The working directory.
#
# The DB will be written inside this directory, with the filename specified
# above using the 'dbfilename' configuration directive.
# 
# Also the Append Only File will be created inside this directory.
# 
# Note that you must specify a directory here, not a file name.
dir /data/mydirectory/

最後に、redis サーバーを通常の方法で起動できます。

于 2013-01-24T17:16:25.450 に答える
14

または、次のことができます。

  1. redis サーバー / インスタンスを停止します。たとえば、 service redis6379 stop
  2. dump.rdb ファイルを適切な場所 (例: ) にコピーしますcp /path/to/dump-6379.rdb /var/lib/redis/dump-6379.rdb。適切なパーミッションを付与します (user:group は redis:redis およびモード 644 である必要があります)。
  3. redis サーバー / インスタンスを起動します。service redis6379 start

ファイルを適切な場所にコピーする前に、redis サーバーを停止することが重要です。これは、Redis が終了する前にスナップショットを保存し、ファイルを置き換えるためです。

また、最初に既存の dump.rdb ファイルをバックアップすることもできます。

于 2013-12-13T11:06:32.083 に答える
5

次のように、2 番目のサーバーでredisを開始します。

$ > redis-server /path/to/my/redis/configuration/file/redis.conf

上記のように、redis サーバーの起動時に指定した構成ファイル( redis.conf ) で名前ファイル パスを検索するため、redis の起動時にrdbファイルが検索されます。

ファイル名とパスを指定するには、redis.confファイル テンプレートの2 行を編集するだけです (redis ソースのルート ディレクトリで提供されます)。サーバーの起動時に指定したディレクトリの場所に、改訂版を redis.conf として保存します。

必要な設定は、ソースの最上位ディレクトリのredis.confテンプレートの127行目と137行目(redis バージョン 2.6.9) にあります。

# The filename where to dump the DB
dbfilename dump.rdb

# The working directory
dir ./

ご覧のとおり、両方の設定にデフォルトが用意されています

したがって、これら 2 行の最初の行 (127) を変更して、rdb ファイルを識別し、2 行目 (137) で、スナップショット rdb ファイルの実際のファイル パスをデフォルトの「./」に置き換えます。変更を加えてredis.confを保存し、この新しい conf ファイルで redis の受け渡しを開始します。

于 2013-01-26T05:27:07.470 に答える
2

appendonly no を設定してみてください。私の場合、*.aof ファイルは空 (0 バイト) でした。appendonly=no を設定してから、dump.rdb をロードする必要があります。

于 2015-12-08T01:16:32.337 に答える
1

このソリューションは redis-cluster で機能しますが、redis でも機能するはずです。

この依存関係をインストールします https://github.com/sripathikrishnan/redis-rdb-tools

pip install rdbtools python-lzf

その後、これを実行します

rdb -c protocol /path/to/dump.rdb | redis-cli -h host -p port --pipe

これがクラスターの場合、ポートはマスターのポートにする必要があります。

于 2021-11-18T15:09:47.733 に答える