ホームページ >データベース >Redis >Redis クラスターと分散型の違い

Redis クラスターと分散型の違い

(*-*)浩
(*-*)浩オリジナル
2019-11-22 14:24:474114ブラウズ

Redis クラスターと分散型の違い

分散とは、ビジネス システムを分割することを指します。つまり、分散された各ノードが異なる機能を実装します。

クラスターは、単一のサービス エンティティよりも拡張性と可用性が高いサービス プラットフォームを提供するために連携するサービス エンティティのグループです。 (推奨学習: 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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。