tencent cloud

Tencent Cloud Distributed Cache (Redis OSS-Compatible)

Proxyの特性

ダウンロード
フォーカスモード
フォントサイズ
最終更新日: 2026-10-20 17:27:28
AI翻訳
Distributed Cacheのプロキシサーバー(Proxy)は、ルーティング分散、CLB、自動フェイルオーバーなどの中核的な役割を担っており、クライアント側の処理ロジックを簡素化することを目的としています。Proxyのルーティングメカニズムと特定のコマンドに対する処理戦略を深く分析することで、より効率的で堅牢なビジネスアーキテクチャの構築に役立ちます。

Proxyの紹介

プロキシサーバー(Proxy)は独立コンポーネントとして動作し、データシャードのコンピューティングリソースを占有しません。複数のProxyノードをデプロイすることで、システムはトラフィックのCLBとフェイルオーバーを実現できるだけでなく、分散キャッシュデータベースインスタンスの可用性と拡張性を大幅に向上させることができます。
説明:
レプリカ読み取り専用を有効にする場合:各インスタンスには少なくとも3つのProxyがあります。標準アーキテクチャのProxy数 = 3 + (レプリカ数 - 1)、クラスタアーキテクチャのProxy数 = Max[シャード数 * レプリカ数、シャード数 * 1.5(切り上げ)]。
レプリカ読み取り専用を無効にする場合:標準アーキテクチャのProxy数 = 3、クラスタアーキテクチャのProxy数 = シャード数 * 1.5(切り上げ)。
機能
説明
ルーティング転送
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など)をマスターノードへ転送します。

接続数の説明

通常時、Proxyはデータシャードとの長期的な接続を確立することでリクエストを処理します。リクエストに特定のコマンドが含まれる場合、Proxyはコマンドの処理要件に基づいて、対応するデータシャード上に追加の接続を作成します。単一データノードシャードの最大接続数制限については、接続数の調整を参照してください。接続数制限を超えないようにするため、以下のコマンドは慎重に使用する必要があります。
ブロッキング系コマンド:BRPOP、BRPOPLPUSH、BLPOP、BZPOPMAX、BZPOPMIN、BLMPOP、BZMPOP。
トランザクション系コマンド:MULTI、EXEC、WATCH。
MONITOR系コマンド:MONITOR、IMONITOR。
サブスクリプションコマンド:SUBSCRIBE、UNSUBSCRIBE、PSUBSCRIBE、PUNSUBSCRIBE。

ヘルプとサポート

この記事はお役に立ちましたか?

フィードバック