目次
1. 一般的な使用方法
2. さまざまな使用方法のメリットとデメリット
1. Redis シングル コピー
Redis マルチコピーはマスター-スレーブ (レプリケーション) 配置構造を採用しており、シングルコピーと比較して最大の特徴はマスター間のデータです。リアルタイム同期、データ永続化、およびバックアップ戦略が提供されます。同社の基本的な環境構成では、マスター/スレーブ インスタンスを異なる物理サーバーにデプロイできるため、外部サービスの同時提供と読み取り/書き込み分離戦略を実現できます。
Redis Sentinel は、コミュニティ バージョンで開始されたネイティブの高可用性ソリューションであり、そのデプロイメント アーキテクチャは主に、Redis Sentinel クラスターと Redis データ クラスターの 2 つの部分で構成されます。
4. Redis Cluster
5. Redis が自社開発した
ホームページ データベース Redis Redis の一般的な使用方法は何ですか?

Redis の一般的な使用方法は何ですか?

May 30, 2023 am 11:53 AM
redis

1. 一般的な使用方法

Redis の一般的な使用方法としては、

1.Redis の単一コピー、

2.Redis の複数のコピー (マスター/スレーブ) が挙げられます。 ;

3.Redis Sentinel;

4.Redis Cluster;

5.Redis は自社開発です。

2. さまざまな使用方法のメリットとデメリット

1. Redis シングル コピー

Redis シングル コピーは、単一の Redis ノード デプロイメント アーキテクチャを採用しており、バックアップ ノードはありません。データをリアルタイムで同期します。データの永続化やバックアップ戦略は提供されず、データの信頼性要件が低い純粋なキャッシュ ビジネス シナリオに適しています。

Redis の一般的な使用方法は何ですか?

利点:

シンプルなアーキテクチャと簡単な導入;

高いコスト パフォーマンス: を使用する場合、バックアップ ノードは必要ありません。キャッシュ (単一インスタンスの可用性はスーパーバイザまたは crontab で保証できます) もちろん、ビジネスの高可用性を満たすために、バックアップ ノードも犠牲にすることもできますが、同時に外部サービスを提供できるインスタンスは 1 つだけです。 #####ハイパフォーマンス。

欠点:

データの信頼性は保証されません;

キャッシュを使用すると、プロセスの再起動後にデータが失われます。たとえ高可用性を解決するためにバックアップ ノードがあったとしても、キャッシュの予熱の問題をまだ解決できないため、高いデータ信頼性要件を必要とするビジネスには適していません;

高性能はシングルコア CPU の処理能力によって制限されます (Redis はシングルコア CPU です)。スレッド機構)、CPU が主なボトルネックとなるため、ソートや計算が少なく、操作コマンドがシンプルなシナリオに適しています。代わりに Memcached の使用を検討することもできます。

2. Redis マルチコピー (マスター-スレーブ)

Redis マルチコピーはマスター-スレーブ (レプリケーション) 配置構造を採用しており、シングルコピーと比較して最大の特徴はマスター間のデータです。リアルタイム同期、データ永続化、およびバックアップ戦略が提供されます。同社の基本的な環境構成では、マスター/スレーブ インスタンスを異なる物理サーバーにデプロイできるため、外部サービスの同時提供と読み取り/書き込み分離戦略を実現できます。

Redis の一般的な使用方法は何ですか?
利点:

高信頼性: 一方で、デュアルマシンのアクティブおよびスタンバイ アーキテクチャを採用しており、メイン データベースに障害が発生した場合、スタンバイ スイッチングにより、スレーブ データベースがメイン データベースにサービスを提供するように昇格され、サービスのスムーズな運用が確保されます。一方、データ永続化機能をオンにして合理的なバックアップ戦略を構成すると、効果的にバックアップを実行できます。データの誤操作と異常なデータ損失の問題を解決します。

読み取りと書き込みの分離戦略: スレーブ ノードは、メイン データベース ノードの読み取り機能を拡張し、大規模な同時読み取り操作に効果的に対処できます。

欠点:

障害回復が複雑 RedisHA システムがない場合 (開発が必要)、メイン データベース ノードに障害が発生した場合、スレーブ ノードを手動でマスター ノードに昇格させる必要があります。ビジネス パーティに通知する必要があります。構成を変更し、他のスレーブ データベース ノードに新しいマスター データベース ノードをコピーさせる必要があります。プロセス全体には人間の介入が必要で、比較的面倒です。

マスターの書き込み能力データベースは単一マシンによって制限されるため、シャーディングを検討できます;

メイン ライブラリのストレージ容量は単一マシンによって制限されるため、Pika を検討できます;

ネイティブ レプリケーションの欠点Redis レプリケーションが中断された後、スレーブは pync を開始します。これは、同期が失敗した場合、完全な同期が実行されます。メイン ライブラリが完全バックアップを実行すると、ミリ秒または秒単位でバックアップが発生する可能性があります。 -レベルのラグ; COW メカニズムにより、極端な場合にはメイン ライブラリのメモリがオーバーフローし、プログラムが異常終了するかクラッシュします。マシン; メイン ライブラリ ノードはバックアップ ファイルを生成し、これによりサーバーのディスク IO と CPU (圧縮) リソースが消費されます。 ; 数 GB のバックアップ ファイルを送信すると、サーバーのエクスポート帯域幅が大幅に増加し、リクエストがブロックされるため、最新バージョンにアップグレードすることをお勧めします。

3. Redis Sentinel (センチネル)

Redis Sentinel は、コミュニティ バージョンで開始されたネイティブの高可用性ソリューションであり、そのデプロイメント アーキテクチャは主に、Redis Sentinel クラスターと Redis データ クラスターの 2 つの部分で構成されます。

Redis Sentinel クラスターは、複数の Sentinel ノードで構成される分散クラスターであり、障害検出、自動フェイルオーバー、構成センター、クライアント通知を実現できます。 Redis Sentinel を満たすノードの数は奇数である必要があり、その数は 2n 1 (n≥1) です。

Redis の一般的な使用方法は何ですか?

Redis の一般的な使用方法は何ですか?#利点:

Redis Sentinel クラスターのデプロイは簡単です。

Redis マスター/スレーブ モードでの高可用性スイッチングの問題を解決できます;

Redis データ ノードの線形拡張を実現し、Redis 自体のシングル スレッド ボトルネックを簡単に突破するのに非常に便利です。 Redis の大容量または高パフォーマンスのビジネス ニーズに大きく対応できます。;

Sentinel のセットを実装して、Redis データ ノードのグループまたは複数のデータ ノード グループを監視できます。

欠点:

デプロイメントは Redis マスター/スレーブ モードよりも複雑で、原理を理解するのがより面倒です;

リソースの無駄、システム内のスレーブ ノードRedis データ ノードはバックアップ ノードとして機能し、サービスは提供しません。

Redis Sentinel は、主に Redis データ ノード内のマスター ノードの高可用性切り替えを目的としています。Redis データ ノードの障害判定は分割されています。主観的オフラインと客観的オフラインの 2 つのタイプに分けられます Redis スレーブ ノードの場合: ノードは主観的にオフラインになり、フェイルオーバーは実行されません。

は読み取りと書き込みの分離の問題を解決できず、実装が比較的複雑です。

推奨事項:

同じビジネスを監視する場合は、Redis データ ノードの複数のグループを監視する Sentinel クラスターを選択できます。それ以外の場合は、Redis データ ノードのグループを監視する Sentinel クラスターを選択します。 。

センチネル モニター構成での推奨設定は、センチネル ノードの半分に 1 を加えたものです。センチネルが複数の IDC に展開されている場合、単一の IDC に展開されているセンチネルの数が (センチネル数 - クォーラム) を超えることは推奨されません。 )。

偶発的な切断を防止し、スイッチング感度制御を制御するためにパラメータを合理的に設定します:

a. クォーラム

b. ダウンアフターミリ秒 30000

c. ailover-timeout 180000

d.maxclient

e.timeout

デプロイされた各ノードのサーバー時刻は可能な限り同期する必要があります。そうしないと、ログのタイミングが同期されなくなります。混乱します。

Redis では、パイプラインとマルチキー操作を使用して RTT の数を減らし、リクエストの効率を向上させることをお勧めします。

構成センター (zookeeper) を自分で構成して、クライアントがインスタンス リンクにアクセスできるようにします。

4. Redis Cluster

Redis Cluster はコミュニティ バージョンによって開始された Redis 分散クラスター ソリューションであり、主に単一マシンのメモリ、同時実行性、およびボトルネックがある場合、Redis Cluster は適切な負荷分散の目的を達成できます。

Redis Cluster クラスター ノードの最小構成は 6 ノード (3 つのマスターと 3 つのスレーブ) を超えています。マスター ノードは読み取りおよび書き込み操作を提供し、スレーブ ノードはバックアップ ノードとして機能しますが、これらのノードは提供されません。リクエストを処理し、フェイルオーバーのみに使用されます。

Redis Cluster は仮想スロット パーティショニングを使用します。すべてのキーは、ハッシュ関数に従って 0 ~ 16383 の整数スロットにマッピングされます。各ノードは、スロットの一部とスロットによってマッピングされたキー値データを維持する責任があります。

Redis の一般的な使用方法は何ですか?

利点:

中央アーキテクチャなし;

データはスロットとデータに従って複数のノードに保存および分散されます。ノード間で共有され、データ分散を動的に調整できます。

スケーラビリティ: 1,000 を超えるノードに線形的に拡張でき、ノードを動的に追加または削除できます。

高可用性: 一部のノードがは使用できませんが、クラスターは引き続き使用できます。スレーブをスタンバイ データ コピーとして追加することで、自動フェイルオーバーを実現できます。ノードはゴシップ プロトコルを通じてステータス情報を交換し、投票メカニズムを使用してスレーブからマスターへの役割の昇格を完了します。

操作とメンテナンスコストを削減し、システム拡張のパフォーマンスと可用性を向上させます。

欠点:

クライアントの実装は複雑で、ドライバーにはスロット マッピング情報をキャッシュし、タイムリーに更新するスマート クライアントの実装が必要であるため、開発の難易度が高くなります。クライアントの状況はビジネスの安定性に影響を与えます。現時点では、JedisCluster のみが比較的成熟しており、一般的な「最大リダイレクト例外」などの例外処理部分はまだ完全ではありません。

ノードは何らかの理由によりブロックされ(ブロック時間がclutser-node-timeoutを超えている)、オフラインと判断されるため、この種のフェイルオーバーは必要ありません。

データは非同期的にレプリケートされるため、データの強い一貫性は保証されません。

複数の企業が同じクラスタを利用する場合、ホットデータとコールドデータが統計的に区別できず、リソースの分離が悪く相互影響が生じやすくなります。

スレーブはクラスター内で「コールド スタンバイ」として機能し、読み取りプレッシャーを軽減できません。もちろん、SDK の合理的な設計により、スレーブ リソースの使用率を改善できます。

mset や mget の使用などのキーのバッチ操作の制限では、現在、バッチ操作を実行するために同じスロット値を持つキーのみがサポートされています。異なるスロット値にマップされたキーの場合、キーはスロット間のクエリをサポートしていないため、mset、mget、sunion などの操作を実行するのはユーザーフレンドリーではありません。

キー トランザクション操作のサポートは制限されており、同一ノード上の複数キー トランザクション操作のみサポートされており、複数のキーが異なるノードに分散されている場合、トランザクション機能は使用できません。

データ パーティショニングではキーが最小の粒度であるため、大きなキー値オブジェクト (ハッシュ、リストなど) を含むデータを別のノードにマップすることはできません。

複数のデータベース スペースはサポートされません。スタンドアロン モードの Redis は、最大 16 のデータベースをサポートできます。クラスター モードでは、1 つのデータベース スペース (db 0) のみを使用できます。

レプリケーション構造は 1 つのレベルのみをサポートします。スレーブ ノードはマスター ノードのみをレプリケートでき、ネストされたツリー レプリケーション構造はサポートされません。

メイン データベース ノードがシステムの欠点となるホットキーの生成を避けてください。

ネットワーク カードの過負荷やクエリの遅延などを引き起こす可能性があるビッグキーの生成は避けてください。

再試行時間は、クラスターノード時間よりも長くする必要があります。

Redis クラスターでは、最大リダイレクト シナリオを減らすためにパイプライン操作と複数キー操作を使用することはお勧めしません。

「JVM、ロック、高同時実行性、リフレクション、Spring 原則、マイクロサービス、Zookeeper、データベース、データ構造などをカバーする」インタビュー ガイド「Java Core Knowledge Points Compilation.pdf」を共有します。 Java208 のインタビューの質問 (回答を含む) がある場合は、(Java Advanced Architecture) 705127209 に参加して無料で質問を入手してください。

5. Redis が自社開発した

Redis が自社開発した高可用性ソリューションは、主に構成センター、障害検出、フェイルオーバー処理メカニズムに反映されており、通常は実際のシステムに基づく必要があります。企業のオンライン ビジネス環境をカスタマイズします。

Redis の一般的な使用方法は何ですか?

Redis の一般的な使用方法は何ですか?

利点:

高信頼性と高可用性;

高い自律性と制御性;

適切なビジネス 実際のニーズ、優れた拡張性と優れた互換性。

欠点:

複雑な実装と高い開発コスト;

監視、ドメイン名サービス、メタデータ情報を保存するデータベースなどのサポート周辺機能の確立が必要.;

高額なメンテナンス費用。

以上がRedis の一般的な使用方法は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Redisクラスターモードの構築方法 Redisクラスターモードの構築方法 Apr 10, 2025 pm 10:15 PM

Redisクラスターモードは、シャードを介してRedisインスタンスを複数のサーバーに展開し、スケーラビリティと可用性を向上させます。構造の手順は次のとおりです。異なるポートで奇妙なRedisインスタンスを作成します。 3つのセンチネルインスタンスを作成し、Redisインスタンスを監視し、フェールオーバーを監視します。 Sentinel構成ファイルを構成し、Redisインスタンス情報とフェールオーバー設定の監視を追加します。 Redisインスタンス構成ファイルを構成し、クラスターモードを有効にし、クラスター情報ファイルパスを指定します。各Redisインスタンスの情報を含むnodes.confファイルを作成します。クラスターを起動し、CREATEコマンドを実行してクラスターを作成し、レプリカの数を指定します。クラスターにログインしてクラスター情報コマンドを実行して、クラスターステータスを確認します。作る

Redisコマンドの使用方法 Redisコマンドの使用方法 Apr 10, 2025 pm 08:45 PM

Redis指令を使用するには、次の手順が必要です。Redisクライアントを開きます。コマンド(動詞キー値)を入力します。必要なパラメーターを提供します(指示ごとに異なります)。 Enterを押してコマンドを実行します。 Redisは、操作の結果を示す応答を返します(通常はOKまたは-ERR)。

Redisデータをクリアする方法 Redisデータをクリアする方法 Apr 10, 2025 pm 10:06 PM

Redisデータをクリアする方法:Flushallコマンドを使用して、すべての重要な値をクリアします。 FlushDBコマンドを使用して、現在選択されているデータベースのキー値をクリアします。 [選択]を使用してデータベースを切り替え、FlushDBを使用して複数のデータベースをクリアします。 DELコマンドを使用して、特定のキーを削除します。 Redis-CLIツールを使用してデータをクリアします。

単一のスレッドレディスの使用方法 単一のスレッドレディスの使用方法 Apr 10, 2025 pm 07:12 PM

Redisは、単一のスレッドアーキテクチャを使用して、高性能、シンプルさ、一貫性を提供します。 I/Oマルチプレックス、イベントループ、ノンブロッキングI/O、共有メモリを使用して同時性を向上させますが、並行性の制限、単一の障害、および書き込み集約型のワークロードには適していません。

Redisのソースコードを読み取る方法 Redisのソースコードを読み取る方法 Apr 10, 2025 pm 08:27 PM

Redisソースコードを理解する最良の方法は、段階的に進むことです。Redisの基本に精通してください。開始点として特定のモジュールまたは機能を選択します。モジュールまたは機能のエントリポイントから始めて、行ごとにコードを表示します。関数コールチェーンを介してコードを表示します。 Redisが使用する基礎となるデータ構造に精通してください。 Redisが使用するアルゴリズムを特定します。

Redisのすべてのキーを表示する方法 Redisのすべてのキーを表示する方法 Apr 10, 2025 pm 07:15 PM

Redisのすべてのキーを表示するには、3つの方法があります。キーコマンドを使用して、指定されたパターンに一致するすべてのキーを返します。スキャンコマンドを使用してキーを繰り返し、キーのセットを返します。情報コマンドを使用して、キーの総数を取得します。

基礎となるRedisを実装する方法 基礎となるRedisを実装する方法 Apr 10, 2025 pm 07:21 PM

Redisはハッシュテーブルを使用してデータを保存し、文字列、リスト、ハッシュテーブル、コレクション、注文コレクションなどのデータ構造をサポートします。 Redisは、スナップショット(RDB)を介してデータを維持し、書き込み専用(AOF)メカニズムを追加します。 Redisは、マスタースレーブレプリケーションを使用して、データの可用性を向上させます。 Redisは、シングルスレッドイベントループを使用して接続とコマンドを処理して、データの原子性と一貫性を確保します。 Redisは、キーの有効期限を設定し、怠zyな削除メカニズムを使用して有効期限キーを削除します。

Redisキューの読み方 Redisキューの読み方 Apr 10, 2025 pm 10:12 PM

Redisのキューを読むには、キュー名を取得し、LPOPコマンドを使用して要素を読み、空のキューを処理する必要があります。特定の手順は次のとおりです。キュー名を取得します:「キュー:キュー」などの「キュー:」のプレフィックスで名前を付けます。 LPOPコマンドを使用します。キューのヘッドから要素を排出し、LPOP Queue:My-Queueなどの値を返します。空のキューの処理:キューが空の場合、LPOPはnilを返し、要素を読む前にキューが存在するかどうかを確認できます。

See all articles