この記事では、Redis のセンチネル モードについて紹介します。お役に立てば幸いです。
#Redis マスター/スレーブ モード。マスター ノードに障害が発生すると、スレーブ ノードをマスター ノードに昇格できます。同時に、クライアントに次のように通知する必要があります。マスター ノード アドレスを更新します。これは通常は不可能です。OK。したがって、Redis は、この問題を解決するために Redis Sentinel
Sentinel メカニズムを提供します。 [関連する推奨事項: Redis ビデオ チュートリアル ]
マスター/スレーブ レプリケーションの問題
1. マスターの利点スレーブ レプリケーション
- マスター ノードに障害が発生した場合、スレーブ ノードはマスター ノードにアップグレードされます
- マスター ノードの読み取り容量を拡張し、マスター ノードの負荷を共有します。マスター ノード
2. 既存の問題
- スレーブ ノードからマスター ノードをアップグレードするプロセスには手動介入が必要であり、同時に、クライアント Redis サービス アドレスを変更する必要があります。
- マスター ノードの書き込み機能、ストレージ容量は単一マシンの制限の影響を受けます。
- パフォーマンス: Redis レプリケーションが中断されると、スレーブ ノードは
psync
を開始します。この時点で同期が失敗した場合は、完全同期が実行されます。メイン データベースが完全バックアップを実行している間、ミリ秒または秒レベルのラグが発生する可能性があります。
1. いくつかの概念
主な機能
- 監視: マスターとスレーブが正常に動作しているかどうかを常にチェックします。サーバーは正常に動作しています
- 通知: ノードに障害が発生すると、他のノードに通知されます
- 自動フェイルオーバー:メイン ノードが正常に動作しない場合フェイルオーバーは自動的に実行され、スレーブ ノードの 1 つがマスター ノードにアップグレードされます。
- 構成プロバイダー: クライアントは単一ノードを構成するのではなく、Sentinel# を構成します。 ## ノード コレクション
一般的に、各
Sentinel ノードは他の Sentinel を継続的に監視します。
ノードと Redis
ノードは PING
を送信し、返信することでオンラインかどうかを確認します。
- 主観的オフライン:
- すべてのマスター ノードとスレーブ ノードについて、Sentinel がターゲット ノードから
down-after-milliseconds
ミリ秒以内に有効な応答を受信しない場合、ノードは主観的に判断されます。オフライン。 オフラインの目的: - マスター ノードにのみ使用されます。マスター ノードに障害が発生した場合、Sentinel ノードは
sentinel is-master-down-by を渡します- addr
コマンドは、他のSentinel
ノードにこのノードのステータスを確認するよう要求します。<quorum></quorum>
を超えるノードがプライマリ ノードに到達できないと判断した場合、Sentinel
ノードはプライマリ ノードが客観的にオフラインであると判断します。
- 各
Sentinel
は、1 回/秒## の頻度で他の
Sentinelノードおよび
Redisマスター/スレーブ ノードに送信します。
#PINGコマンド。
インスタンスが - PING
コマンドに対する最後の有効な応答から
ダウンアフターミリ秒を超えている場合、そのインスタンスは
Sentinelとしてマークされます
主観的なオフライン として。 マスターサーバー - が主観的にオフラインとしてマークされている場合、このマスターサーバーのすべての Sentinel ノードが
1 回/秒## で監視されています。このマスター サーバーは主観的オフライン状態に入りました。
ノードを超えるノードがマスター ノードに到達できないと判断した場合、 - Sentinel
ノードは、マスター ノードは
客観的にはオフラインです。
メイン サーバーが客観的にオフラインとしてマークされると、Sentinel は - INFO
コマンドをオフライン サーバーのすべてのサーバー (
10 から開始) に送信します。回/秒は
1 回/秒に変更されます。
Sentinel
ノードはマスター ノードのステータスをネゴシエートします。マスター ノードが - SDOWN
状態にある場合、投票により新しい
マスター ノード##が自動的に選択されます#。残りのスレーブ ノード
が データ レプリケーション の 新しいプライマリ ノード を指すようにします。 メイン サーバー がオフラインであることに同意する十分な Sentinel がない場合、 - メイン サーバー
の
客観的なオフライン ステータスは削除されます。 プライマリ サーバーが Sentinel の PING コマンドに対して 有効な応答を返すと、
プライマリ サーバーの
Redis には、メイン ライブラリのリクエスト処理を制限するための 2 つの構成項目 ( min-slaves-to-write
とmin-slaves-max-lag
) が用意されています。min-slaves-to-write: この構成項目は、メイン ライブラリがデータ同期を実行できるスレーブ ライブラリの最小数を設定します;
min-slaves-max-lag:この設定 この項目は、マスター ライブラリとスレーブ ライブラリの間でデータがコピーされるときに、スレーブ ライブラリがマスター ライブラリに ACK メッセージを送信するための最大遅延 (秒単位) を設定します。
- これら 2 つの構成項目を組み合わせた後の要件は、 メイン ライブラリに接続されているスレーブ ライブラリ内に少なくとも N 個のスレーブ ライブラリがあり、メイン ライブラリでデータをコピーするときに ACK メッセージの遅延が発生することです。ライブラリは T 秒を超えることはできません。それ以外の場合、メイン ライブラリはクライアント リクエストを受信しなくなります
- 。
概要
Sentinel
は高可用性の問題を解決しますが、マスター ノードの単一ノード拡張の問題は解決しません。 プログラミング関連の知識について詳しくは、プログラミング入門をご覧ください。 !
以上がRedis のセントリー モードについては 1 つの記事で説明していますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

Redisのコア関数は、高性能のメモリ内データストレージおよび処理システムです。 1)高速データアクセス:Redisはデータをメモリに保存し、マイクロ秒レベルの読み取り速度と書き込み速度を提供します。 2)豊富なデータ構造:文字列、リスト、コレクションなどをサポートし、さまざまなアプリケーションシナリオに適応します。 3)永続性:RDBとAOFを介してディスクにデータを持続します。 4)サブスクリプションを公開:メッセージキューまたはリアルタイム通信システムで使用できます。

Redisは、次のようなさまざまなデータ構造をサポートしています。1。文字列、単一価値データの保存に適しています。 2。キューやスタックに適したリスト。 3.非重複データの保存に使用されるセット。 4。ランキングリストと優先キューに適した注文セット。 5。オブジェクトまたは構造化されたデータの保存に適したハッシュテーブル。

Redisカウンターは、Redisキー価値ペアストレージを使用して、カウンターキーの作成、カウントの増加、カウントの減少、カウントのリセット、およびカウントの取得など、カウント操作を実装するメカニズムです。 Redisカウンターの利点には、高速速度、高い並行性、耐久性、シンプルさと使いやすさが含まれます。ユーザーアクセスカウント、リアルタイムメトリック追跡、ゲームのスコアとランキング、注文処理などのシナリオで使用できます。

Redisコマンドラインツール(Redis-Cli)を使用して、次の手順を使用してRedisを管理および操作します。サーバーに接続し、アドレスとポートを指定します。コマンド名とパラメーターを使用して、コマンドをサーバーに送信します。ヘルプコマンドを使用して、特定のコマンドのヘルプ情報を表示します。 QUITコマンドを使用して、コマンドラインツールを終了します。

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

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

RedisクラスターでのZsetの使用:Zsetは、要素をスコアに関連付ける順序付けられたコレクションです。シャード戦略:a。ハッシュシャーディング:ZSTキーに従ってハッシュ値を分配します。 b。範囲シャード:要素スコアに従って範囲に分割し、各範囲を異なるノードに割り当てます。操作の読み取りと書き込み:a。読み取り操作:ZSetキーが現在のノードのシャードに属している場合、ローカルで処理されます。それ以外の場合は、対応するシャードにルーティングされます。 b。書き込み操作:Zsetキーを保持しているシャードに常にルーティングされます。

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


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

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

メモ帳++7.3.1
使いやすく無料のコードエディター

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

EditPlus 中国語クラック版
サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン
