機能 | 説明 |
ルーティング転送 | Proxyはバックエンドデータシャードとの永続的な接続を維持し、リクエストの均等な分散と正確なルーティングという重要な役割を担い、リクエストの効率的な処理とシステムの安定的な運用を確保します。 |
マスター/スレーブクラスタのアクセスモードと互換性があります。 | ビジネスの成長が標準アーキテクチャのキャパシティを超えた場合、データをProxyを備えたクラスタアーキテクチャに容易に移行できます。非マルチKey操作の場合はいずれも互換性があり、アーキテクチャ変換をシームレスに実現し、ビジネス調整のコストを大幅に削減し、ビジネスの円滑な移行と継続的な成長を確保します。具体的な操作については、インスタンスアーキテクチャのアップグレードをご参照ください。 |
シャード変更時の無停止性 | Proxy自体はデータシャードの数とサイズを直接調整するのではなく、バックエンドのデータシャード管理メカニズムと連携してデータシャードのASを実現します。データシャードの移行が必要な場合(拡張や縮小操作など)、Proxyは透過的なデータ移行プロセスをサポートし、クライアント操作に影響を与えないようにします。 |
マルチデータベース(DB)
| ネイティブRedisプロトコルおよびそのClusterクライアントは、通常単一データベース操作のみをサポートし、デフォルトではデータベース0のみを使用し、`SELECT`コマンドをサポートしません。Proxyを使用してクラスタインスタンスに接続することで、複数のデータベースにアクセスでき、`SELECT`コマンドを使用して異なるデータベース間を切り替えることができます。クラスタ版では、各インスタンスはデフォルトで最大256個のデータベースを提供し、マルチデータベース機能を強力にサポートします。 |
レプリカ読み取り専用 | 読み書き分離アーキテクチャでは、Proxyは読み取り専用ノードの稼働状況を継続的に監視し、特定の状況においてトラフィック管理措置を実施します。 読み取り専用ノードに異常状態が発生した場合、Proxyはそのノードの重みを減らし、リクエスト処理の割合を低下させます。一度の接続試行が失敗した場合、Proxyはルーティングを更新し、そのノードへのトラフィック転送を一時的に停止して、業務リクエストを他のノードへ切り替えます。問題が解決され、サービスが再度有効化されるまでこの状態が続きます。 読み取り専用ノードが全量データ同期を実行している場合、Proxyはそのノードへのトラフィック送信を一時停止します。この措置は同期プロセスが完了するまで継続され、ノードがユーザーリクエストを処理する前に最新かつ一貫性のあるデータコピーを保持していることを保証します。同期が完了すると、Proxyはそのノードへのサービスを再開し、通常のリクエスト処理に参加できるようにします。 |
マルチアカウント権限制御 | Proxyはユーザーが設定した権限に基づいて、ユーザーが実行できるコマンドの種類を制御できます。異なるアカウントは、自分に許可されたコマンドを実行できます。 読み取り専用権限ユーザー:読み取りコマンドのみを実行できます。例えば、GET、MGET、HGET、SMEMBERSなどです。書き込みコマンド(SET、LPUSH、SADDなど)を実行しようとすると、Redisサーバーによって拒否されます。 読み書き権限ユーザー:読み書き権限を持つユーザーは、読み取りコマンドと書き込みコマンドを含むすべてのコマンドを実行できます。 |
転送ルール | 説明 |
基礎転送ルール。 | クラスタアーキテクチャ 単一Keyを操作するコマンドの場合、各Keyは通常1つのシャードに保存されており、ProxyはリクエストをそのKeyが属するスロット(slot)に直接送信します。 複数のKeyに操作が及ぶ場合、それらのKeyが異なるデータシャードに保存されていると、Proxyはコマンドを複数のサブコマンドに分割します。各サブコマンドは1つのKeyのみを対象とし、各Keyをそれぞれ対応するシャードに送信します。 読み書き分離 書き込みリクエスト:すべてのデータ変更はマスターノードで行う必要があるため、Proxyはそれをマスターノード(Master)に直接転送します。 読み取りリクエスト:Proxyは、从ノードの実際のパフォーマンスと現在の負荷に基づいて重みを動的に調整し、読み取りリクエストを各从ノードに均等に分散します。現在、特定のノードのカスタマイズには対応していません。 |
特定コマンド転送ルール。 | Proxyは、トランザクションコマンド(MULTIまたはEXEC)、Luaスクリプトコマンド(EVALまたはEVALSHA)、SCAN、INFO、パブリッシュ/サブスクライブコマンド(PUBLISH、SUBSCRIBEなど)をマスターノードへ転送します。 |
フィードバック