redis-cliは、Redisネイティブの組み込みCLIです。 redis-cliを使用して、追加専用ファイル (AOF) に保存されたデータを、自己管理RedisデータベースからTair (Redis OSS-compatible) インスタンスに移行できます。 このソリューションは、柔軟性、効率性、自動化を特徴とし、移行されるデータの一貫性と整合性を保証します。 ただし、このソリューションはリアルタイム同期をサポートせず、オフラインデータの移行のみをサポートします。
計画されたダウンタイム中にデータ移行を実行するか、移行プロセス中に新しいデータが書き込まれないようにすることをお勧めします。
redis-cliは、Redisサーバーにコマンドを送信し、redisサーバーから応答を読み取るターミナルプログラムです。 redis-cliは、複雑なオンライン移行シナリオを処理するようには設計されていません。 オンラインリアルタイム移行を実行する場合は、Data Transmission Service (DTS) を使用できます。 詳細については、「DTSを使用したセルフマネージドRedisデータベースからTair (Redis OSS互換) インスタンスへのデータの移行」をご参照ください。
前提条件
クライアントのIPアドレスがTair (Redis OSS-compatible) インスタンスのホワイトリストに追加されます。 詳細については、「ホワイトリストの設定」をご参照ください。
自己管理型Redisインスタンスでは、AOF永続性が有効になっています。 インスタンスのAOF持続性が無効になっている場合、
CONFIG SET appendonly yes
コマンドを実行してAOF持続性を有効にします。セルフマネージド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
期待される出力:
バックグラウンド追加のみのファイル書き換え開始
AOFを使用して、新しい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-ユーザー: 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
よくある質問
データをインポートするときに
ERR Protocolエラー: 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のエクスポートをサポートしていません。
データをインポートするときに
ERR構文エラー
メッセージが表示されるのはなぜですか。Tair (Redis OSS-compatible) インスタンスのバージョンが自己管理型Redisインスタンスのバージョンより前の場合、この問題が発生する可能性があります。 自己管理型Redisインスタンスと同じバージョン以上のTair (Redis OSS-compatible) インスタンスを購入します。 たとえば、セルフマネージドRedisインスタンスとTair (Redis OSS-compatible) インスタンスの両方がRedis 7.0と互換性がある場合、このエラーは発生しません。