今回旧環境から新環境へのRedisのDB移行を実施しようと考えています。
Redisのバージョンは新旧何方の環境も**[3.0.3]**バージョンになります。
旧環境ではconfに**[appendonly yes]**の設定を入れており、aofファイルとrdbファイルを出力していました。
まず旧環境のconfを新環境にコピーし、テストデータを登録してテストを行っていました。
今回旧→新へのデータ移行テストを行うに辺り、rdbとaofのファイルがあった場合aofファイルが優先して読み込まれると思っていた為
旧環境のaofファイルだけをコピーして新環境に持ってきてredis停止後aofファイルを上書きしredisの起動を行いました。(新環境のrdbファイルはそのまま)
その結果、旧環境のデータが反映されるのかと想定していたのですが
そのままにして置いたrdbファイルからデータがロードされたのか
新環境のテストデータのままでaofファイルもテストデータの物に上書きされました。
仕方ないので新環境のredis停止後、rdbファイルを削除後aofファイルを差し替えてredisを起動した所
旧環境のデータが新環境側に反映され、削除していたrdbファイルも設定されていたタイミングで生成され事なきを得ました。
関連するは不明ですが
該当環境ではkeepalivedによりredisの監視をしておりmaster側のredisプロセスが落ちた際slave側のredisのconfを書き換えmasterにする処理が組み込まれています。今回の事象発生はmaster,slave両ノードです。
次回データ移行を行う際rdbファイルを削除する方法でやれば良いことは分かりましたが
そもそもaofファイルの方が優先して読み込まれるという認識は間違っていますか?
また何処かの設定で優先順位が設定可能で今回のような事象が発生したのでしょうか?
ご教授ください。
https://redis-documentasion-japanese.readthedocs.io/ja/latest/topics/persistence.html
同じインスタンスで、AOF と RDB の両方を組み合わせることも可能です。その場合、Redis の再起動時、元のデータを再構成するために AOF ファイルが使われることに留意してください。なぜなら、そちらのほうがより完全であると保証されるため
あなたの回答
tips
プレビュー