分散とは、ビジネス システムを分割することを指します。つまり、分散された各ノードが異なる機能を実装します。
クラスターは、単一のサービス エンティティよりも拡張性と可用性が高いサービス プラットフォームを提供するために連携するサービス エンティティのグループです。 (推奨学習: Redis ビデオ チュートリアル )
簡単に言うと、分散は単一タスクの実行時間を短縮することで効率を向上させ、クラスタリングは実行時間を短縮することで効率を向上させます。単一タスクの時間: 効率を向上させるために単位時間あたりに実行されるタスクの数。
Redis Cluster クラスター モードには、通常、高可用性、スケーラビリティ、分散、フォールト トレランスなどの特性があります。通常、Redis 分散ソリューションには 2 つのタイプがあります:
クライアント パーティション スキーム
クライアントは、データがどの Redis ノードに保存されるか、またはどの Redis ノードから読み取られるかをすでに決定しています。データ。主なアイデアは、ハッシュ アルゴリズムを使用して Redis データのキーをハッシュすることであり、ハッシュ関数を通じて、特定のキーが特定の Redis ノードにマッピングされます。
クライアント分割スキームの代表格は Redis Sharding です Redis Sharding は、Redis Cluster が登場する前から業界で一般的に使用されていた Redis マルチインスタンス クラスタ方式です。 Java の Redis クライアント ドライバー ライブラリ Jedis は、Redis シャーディング機能、つまり ShardedJedis およびキャッシュ プールと組み合わせた ShardedJedisPool をサポートします。
利点
サードパーティのミドルウェアを使用せず、パーティショニングロジックを制御可能、構成がシンプル、ノード間の相関がなく、線形拡張が容易、強い柔軟性。
欠点
クライアントはサービス ノードを動的に追加または削除できません。クライアントは配信ロジックを独自に維持する必要があります。クライアント間で接続を共有することはありません。接続の無駄が発生します。
プロキシ パーティショニング スキーム
クライアントはプロキシ コンポーネントにリクエストを送信し、プロキシはクライアントのデータを解析し、リクエストを正しいノードに転送し、最後に結果はクライアントに。
利点: クライアント分散ロジックの簡素化、透過的なクライアント アクセス、低いスイッチング コスト、プロキシ転送とストレージの分離。短所: 追加のプロキシ層が存在するため、アーキテクチャの展開が複雑になり、パフォーマンスが低下します。
プロキシ パーティショニングの主流の実装ソリューションには、Twemproxy と Codis が含まれます。
Twemproxy
Twemproxy は、nutcraker とも呼ばれ、twitter による Redis および memcache 用のオープンソース中間プロキシ サーバー プログラムです。 Twemproxy はプロキシとして、複数のプログラムからのアクセスを受け入れ、ルーティング ルールに従ってバックグラウンドのさまざまな Redis サーバーに転送し、元のルートに戻すことができます。 Twemproxy には単一障害点の問題があるため、高可用性ソリューションを作成するには Lvs および Keepalived と組み合わせる必要があります。
利点: アプリケーション範囲が広く、安定性が高く、中間プロキシ層の可用性が高い。欠点: 水平方向にスムーズに拡大/縮小できない、視覚的な管理インターフェイスがない、操作とメンテナンスが不親切、自動転送に失敗する。
Codis
Codis は分散 Redis ソリューションです。上位層アプリケーションの場合、Codis-Proxy への接続とネイティブ Redis への直接接続に違いはありません。サーバ。 Codis の最下層はリクエストの転送を処理し、ダウンタイムなしでデータ移行やその他のタスクを実行します。 Codis はステートレス プロキシ レイヤーを使用し、クライアントに対してすべてが透過的です。
利点
高可用性、データ シャーディング、上位プロキシと基盤となる Redis の自動バランシングを実装し、コマンド ライン インターフェイスと RESTful API を提供し、監視および管理インターフェイスを提供します。 , Redis ノードは動的に追加および削除できます。
欠点
展開アーキテクチャと構成は複雑で、クロスマシン ルームとマルチテナントをサポートしておらず、認証管理もサポートしていません。
Redis 関連の技術記事の詳細については、「Redis データベース チュートリアルの使用方法の概要」 列にアクセスして学習してください。
以上がRedis クラスターと分散型の違いの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。