redis-cli は、Redis ネイティブの組み込み CLI です。redis-cli を使用して、追記専用ファイル (AOF) に保存されたデータを自主管理 Redis データベースから Tair (Redis OSS-compatible) インスタンスに移行できます。このソリューションは、柔軟性、効率性、自動化を特徴とし、移行されるデータの整合性と完全性を保証します。ただし、このソリューションはリアルタイム同期をサポートせず、オフラインデータの移行のみをサポートします。
計画的なダウンタイム中にデータ移行を実行するか、移行プロセス中に新しいデータが書き込まれないようにすることをお勧めします。
redis-cli は、Redis サーバーにコマンドを送信し、応答を読み取るためのターミナルプログラムです。redis-cli は、複雑なオンライン移行シナリオを処理するようには設計されていません。オンラインのリアルタイム移行を実行する場合は、Data Transmission Service (DTS) を使用できます。詳細については、「DTS を使用して自主管理 Redis データベースから Tair (Redis OSS-compatible) インスタンスにデータを移行する」をご参照ください。
前提条件
クライアントの IP アドレスが Tair (Redis OSS-compatible) インスタンスのホワイトリストに追加されていること。詳細については、「ホワイトリストを設定する」をご参照ください。
自主管理 Redis インスタンスで追記専用ファイル (AOF) 永続化が有効になっていること。この機能が有効になっていない場合は、
CONFIG SET appendonly yesコマンドを実行して有効にします。自主管理 Redis インスタンスでハイブリッド永続化が無効になっていること。自主管理インスタンスが Redis 5.0 以降の場合は、
CONFIG SET aof-use-rdb-preamble noコマンドを実行してハイブリッド永続化を無効にします。
手順
自主管理 Redis インスタンスに接続し、手動で AOF 再書き込みをトリガーして最新の AOF を保存します。
redis-cli -h <IP address of the self-managed Redis instance> -p <Port number> BGREWRITEAOF期待される出力:
Background append only file rewriting startedAOF を使用して、新しい Tair (Redis OSS-compatible) インスタンスにデータをインポートします。この例では、appendonly.aof という名前の AOF が使用されます。
redis-cli -h <IP address of the Tair (Redis OSS-compatible) instance> -p <Port number> -a <Instance password> --pipe < appendonly.aof例:
redis-cli -h r-bp1zxszhcgatnx****.redis.rds.aliyuncs.com -p 6379 -a user:password --pipe < appendonly.aof期待される出力:
All data transferred. Waiting for the last reply... Last reply received from server. errors: 0, replies: 90上記のようなメッセージが返された場合、移行は成功です。
次のステップ
自主管理 Redis インスタンスで AOF 永続化を常に有効にする必要がない場合は、データがインポートされた後、次のコマンドを実行して AOF 永続化を無効にします:
redis-cli -h <IP address of the self-managed Redis instance> -p <Port number of the self-managed Redis instance> CONFIG SET appendonly noよくある質問
Q: インポート中に
ERR Protocol error: too big inline requestエラーが報告された場合はどうすればよいですか?CONFIG GET aof-use-rdb-preambleコマンドを実行して、インスタンスのaof-use-rdb-preambleパラメーターがyesに設定されているかどうかを確認します。パラメーターがyesに設定されている場合は、CONFIG SET aof-use-rdb-preamble noコマンドを実行してパラメーターをnoに設定します。その後、AOF ファイルを再生成してリトライします。説明aof-use-rdb-preambleパラメーターがyesに設定されている場合、AOF ファイル内の一部のデータは圧縮されます。この圧縮されたデータは、redis-cli コマンドでは解析またはインポートできません。Tair (Redis OSS-compatible) インスタンスから AOF をエクスポートするにはどうすればよいですか?
Tair (Redis OSS-compatible) インスタンスは AOF のエクスポートをサポートしていません。
Q: なぜデータインポートが
ERR syntax errorで失敗するのですか?Tair (Redis OSS-compatible) インスタンスのバージョンが自主管理 Redis インスタンスのバージョンよりも古い場合、この問題が発生する可能性があります。自主管理 Redis インスタンスと同じかそれ以降のバージョンの Tair (Redis OSS-compatible) インスタンスを購入してください。たとえば、自主管理 Redis インスタンスと Tair (Redis OSS-compatible) インスタンスの両方が Redis 7.0 と互換性がある場合、このエラーは発生しません。