|
序文 通常、ある Redis インスタンスから別の Redis インスタンスにデータを同期または移行するにはどうすればよいでしょうか? データ移行は一般的に簡単です。ソースRedisインスタンスからRDBファイルを直接エクスポートし、それをターゲットRedisインスタンスにインポートするだけです。しかし、リアルタイムの増分同期はより困難です。このニーズに対処するための良い方法は何でしょうか?ここでは、Alibaba Cloudのオープンソースツールであるredis-shakeをご紹介します。
基本機能 redis-shakeは、redis-portをベースに改良した製品です。解析、リカバリ、バックアップ、同期の4つの機能をサポートしています。以下では、主に同期(sync)について紹介します。
基本原則 redis-shakeの基本原理は、スレーブノードがソースRedisクラスターに参加する様子をシミュレートすることです。まず、フルフェッチとリプレイを実行し、次に増分フェッチ(psyncコマンドを使用)を実行します。下の図をご覧ください。 ソースがクラスターモードの場合、プルには1回のredis-shakeのみを起動する必要があります。ソース側のスロット移動操作は有効化しないでください。ターゲットがクラスターモードの場合、単一のノードに書き込み、その後スロットを移行できます。多対多の書き込みも可能です。 現在、redis-shakeは宛先へのシングルリンク実装を使用しています。通常の状況では、これはボトルネックにはなりません。しかし、QPSが高い極端なケースでは、このパフォーマンスがボトルネックになる可能性があり、将来的に最適化する予定です。また、redis-shakeから宛先へのデータ同期は非同期で行われ、読み取りと書き込みの操作は2つの別々のスレッドで実行されるため、ネットワーク遅延によるパフォーマンスの低下を軽減できます。 高効率 完全同期フェーズは並行して実行され、増分同期フェーズは非同期で実行されるため、ミリ秒レベルのレイテンシ(ネットワークレイテンシに依存)を実現します。さらに、大きなキーを一括で取得することで、同期パフォーマンスを最適化します。 モニター ユーザーは RESTful API を使用して、redis-shake をリアルタイムで監視するためのメトリックを取得できます: curl 127.0.0.1:9320/metric。 チェック 同期の正確性を確認するにはどうすればいいでしょうか?オープンソースの redis-full-check を使用できます: https://github.com/aliyun/redis-full-check?spm=a2c6h.12873639.0.0.4b8974955p9YxV。 サポートされているバージョン
予防
注: 有効期限メカニズムのないキー、または有効期限が切れていないキーの数は、ソース ライブラリとターゲット ライブラリの両方で同じです。 Redis-shakeをインストールする
参考リンク https://developer.aliyun.com/article/691794 https://help.aliyun.com/document_detail/117311.html?spm=a2c4g.11186623.6.651.57fc1516WTPTT9 |
Redis データの同期と移行を実行する方法は?
関連するおすすめ記事
-
Facebookのオープンソースロボット開発プラットフォーム、Droidlet
-
Microsoft 公式マイクロサービス アーキテクチャ: 10 個の .NET オープンソース プロジェクト
-
GitHub で最も注目されているプロジェクト トップ 20: 開発の世界のリーダーになるために役立つフロントエンド オープンソース プロジェクトのまとめ!
-
.NET Coreの優れたプロジェクトとフレームワーク
-
最も強力な無料のオープンソース 3D グラフィック ソフトウェア、Blender 3.3 LTS が正式にリリースされました。
-
GitHub で 10.8K 個のスターを獲得しました。プライベート クラウド ストレージをすばやくセットアップできます。