検索
ホームページデータベースRedisRedisイベント処理プロセスの分析

Redisイベント処理プロセスの分析

Feb 19, 2021 am 09:18 AM
redisイベント

Redisイベント処理プロセスの分析

前書き:

redis サーバーはイベント駆動型プログラムであり、ファイル イベントと時間イベントという 2 種類のイベントを処理する必要があることがわかっています。

それでは、redis イベント処理プロセスはどのようなものでしょうか?以下の図を見てみましょう:

Redisイベント処理プロセスの分析

aeMain 関数は、aeProcessEvents 関数を呼び出すことによって、ファイル イベントと時間イベントをスケジュールおよび実行します。イベント関連の情報は aeEventLoop に記録されます。まず、aeSearchNearestTimer 関数を通じて最短時間イベントの実行時間間隔 n を取得し、次に aeApiPoll 関数を呼び出して監視対象ソケットを取得し、最後にソケットに対応するイベント処理関数 rfileProc および wfileProc を実行し、最後に時間イベントを実行します。 function processTimeEvents

File Event

Redis は、Reactor モデルに基づいて独自のネットワーク イベント プロセッサを開発しました。このプロセッサは、ファイル イベント ハンドラーと呼ばれます:

  • ファイル イベント プロセッサは、IO マルチプレクサを使用して複数のソケットをリッスンし、ソケットによって現在実行されているタスクに従って、さまざまなイベント プロセッサをソケットに関連付けます。

  • 監視対象のソケットの準備ができたとき接続応答 (受け入れ)、読み取り (読み取り)、書き込み (書き込み)、閉じる (クローズ) などの操作を実行します。ファイル イベントが発生すると、これらのファイル イベント プロセッサは、ソケットに以前に関連付けられていたイベント ハンドラーを呼び出して、イベントを処理する

#ファイル イベント ハンドラーの構成

(学習ビデオ共有:

redis ビデオ チュートリアル)

Redisイベント処理プロセスの分析

ファイル イベントのハンドラー

Redis はファイル イベント用に複数のハンドラーを作成しました:

  • 接続応答プロセッサ: Redis サーバーが初期化されると、プログラムは、この接続応答プロセッサをサービス リスニング スイートの AE_READABLE イベントに関連付けます。クライアントが connect 関数を使用してサーバー リスニング ソケットに接続すると、ソケットは AE_READABLE イベントを生成し、接続応答プロセッサの実行をトリガーします。対応するソケット応答操作を実行します。

  • コマンド リクエスト プロセッサ: クライアントが接続するとき 応答プロセッサがサーバーに正常に接続した後、サーバーはクライアント ソケットの AE_READABLE イベントをコマンド リクエスト プロセッサ。クライアントがコマンド リクエストをサーバーに送信すると、ソケットは AE_READABLE イベントを生成し、コマンド リクエストをトリガーします。プロセッサは、対応するソケット読み取り操作を実行します。

  • コマンド応答プロセッサ: サーバーにクライアントに渡す必要のあるコマンド応答がある場合、サーバーはクライアントをソケットに接続します。インターフェイスの AE_WRITABLE イベントは、コマンド応答プロセッサに関連付けられます。クライアントがコマンド応答を受信する準備ができたとき、サーバーから送信されると、AE_WRITABLE イベントが生成され、コマンド応答プロセッサーの実行がトリガーされ、対応するソケット書き込み操作が実行されます。

    ##サーバーはパッケージ ワードの AE_READABLE イベントをリッスンし、クライアントが接続要求イベントを送信すると AE_READABLE を生成します。サーバーはクライアントの接続要求に応答し、クライアント ソケットの AE_READABLE イベントを関連付けます。コマンド リクエスト プロセッサを使用すると、クライアントはサーバーにコマンド リクエストを送信できます

クライアントはサーバーにコマンド リクエストを送信します。クライアント ソケットは AE_READABLE イベントを生成し、実行するコマンド プロセッサです。コマンドを実行すると、対応するコマンド応答が生成されます。サーバーは、クライアント ソケットの AE_WRITABLE イベントとコマンドを組み合わせます。応答プロセッサ アソシエーション
  • クライアントが実行しようとしたときコマンド応答を読み取ると、クライアント ソケットは AE_WRITABLE イベントを生成し、コマンド応答プロセッサの実行をトリガーします。コマンド応答プロセッサがコマンドに応答すると、すべてがソケットに書き込まれた後、サーバーは AE_WRITABLE イベント間の関連付けに接続します。クライアント ソケットとコマンド応答ハンドラーの
  • #Time イベント

  • Redis 時間イベントは、時間指定イベントと定期イベントに分類されます。時間イベントは 3 つの属性で構成されます。
  • id: 時刻と時刻に対してサーバーによって作成されるグローバルに一意の ID: 時刻と時刻の到着時刻が記録されます (ミリ秒精度の UNIX タイムスタンプ) timeProc:タイム イベント プロセッサ

サーバーのすべてのタイム イベントは、順序付けされていないリンク リストに配置されます。タイム イベント エグゼキュータが実行されるたびに、リンク リスト全体を走査し、到着するすべてのタイム イベントを検索し、対応するイベント ハンドラを呼び出します。通常モードの Redis サーバーは 1 回のイベント (serverCron) のみを使用します。ベンチマーク モードでは、サーバーは 2 回のイベントのみを使用するため、イベント実行のパフォーマンスは影響を受けません。

関連する推奨事項: redis データベース チュートリアル

以上がRedisイベント処理プロセスの分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事は博客园で複製されています。侵害がある場合は、admin@php.cn までご連絡ください。
Redis:データストアとサービスとしてどのように機能するかRedis:データストアとサービスとしてどのように機能するかApr 24, 2025 am 12:08 AM

redisactsassassadatastoreandaservice.1)asadatastore、itusesin memorystorage for fastorations、supporting variousdatastructureSlike-key-valuepairsandsortedsets.2)asaservice、iteasruascruascriptingrupting criptingforceptingpurplecomplecomplecprexoperations

Redis vs.その他のデータベース:比較分析Redis vs.その他のデータベース:比較分析Apr 23, 2025 am 12:16 AM

他のデータベースと比較して、Redisには次の独自の利点があります。1)非常に速い速度、および読み取り操作は通常、マイクロ秒レベルにあります。 2)豊富なデータ構造と操作をサポートします。 3)キャッシュ、カウンター、公開サブスクリプションなどの柔軟な使用シナリオ。 Redisまたはその他のデータベースを選択する場合、特定のニーズとシナリオに依存します。 Redisは、高性能および低遅延のアプリケーションでうまく機能します。

Redisの役割:データストレージと管理機能の調査Redisの役割:データストレージと管理機能の調査Apr 22, 2025 am 12:10 AM

Redisは、データストレージと管理において重要な役割を果たしており、複数のデータ構造と持続性メカニズムを通じて最新のアプリケーションの中核となっています。 1)Redisは、文字列、リスト、コレクション、注文されたコレクション、ハッシュテーブルなどのデータ構造をサポートし、キャッシュや複雑なビジネスロジックに適しています。 2)RDBとAOFの2つの持続方法を通じて、Redisは信頼できるストレージとデータの迅速な回復を保証します。

Redis:NOSQLの概念の理解Redis:NOSQLの概念の理解Apr 21, 2025 am 12:04 AM

Redisは、大規模なデータの効率的なストレージとアクセスに適したNOSQLデータベースです。 1.Redisは、複数のデータ構造をサポートするオープンソースメモリデータ構造ストレージシステムです。 2.キャッシュ、セッション管理などに適した、非常に速い読み取り速度と書き込み速度を提供します。 4.使用例には、基本的なキー値ペア操作と高度なコレクション重複排除関数が含まれます。 5.一般的なエラーには、接続の問題、データ型の不一致、メモリオーバーフローが含まれるため、デバッグに注意する必要があります。 6.パフォーマンス最適化の提案には、適切なデータ構造の選択とメモリ排除戦略の設定が含まれます。

Redis:実際のユースケースと例Redis:実際のユースケースと例Apr 20, 2025 am 12:06 AM

現実世界でのRedisのアプリケーションには、1。キャッシュシステムとして、データベースクエリを加速し、2。Webアプリケーションのセッションデータを保存するには、3。リアルタイムランキングを実装する4。メッセージ配信をメッセージキューとして簡素化する。 Redisの汎用性と高性能により、これらのシナリオで輝きます。

Redis:その機能と機能の調査Redis:その機能と機能の調査Apr 19, 2025 am 12:04 AM

Redisは、高速、汎用性、豊富なデータ構造のために際立っています。 1)Redisは、文字列、リスト、コレクション、ハッシュなどのデータ構造をサポートし、コレクションを注文します。 2)メモリを介してデータを保存し、RDBとAOFの持続性をサポートします。 3)Redis 6.0から始めて、マルチスレッドI/O操作が導入されました。これにより、高い並行性シナリオでパフォーマンスが向上しました。

RedisはSQLまたはNOSQLデータベースですか?答えが説明しましたRedisはSQLまたはNOSQLデータベースですか?答えが説明しましたApr 18, 2025 am 12:11 AM

redisisclassifiedsaNosqldatabasebasesakey-valuedataModelinsteaded ofthetraditionaldatabasemodel.itoffersspeedand andffficability、makingidealforreal-timeaplications andcaching、butmaynotbesbesutable fors cenariois requiring datientiantientioniity

Redis:アプリケーションのパフォーマンスとスケーラビリティの向上Redis:アプリケーションのパフォーマンスとスケーラビリティの向上Apr 17, 2025 am 12:16 AM

Redisは、データをキャッシュし、分散ロックとデータの持続性を実装することにより、アプリケーションのパフォーマンスとスケーラビリティを向上させます。 1)キャッシュデータ:Redisを使用して頻繁にアクセスしたデータをキャッシュして、データアクセス速度を向上させます。 2)分散ロック:Redisを使用して分散ロックを実装して、分散環境での操作のセキュリティを確保します。 3)データの持続性:データの損失を防ぐために、RDBおよびAOFメカニズムを介してデータセキュリティを確保します。

See all articles

ホット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衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

MantisBT

MantisBT

Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

EditPlus 中国語クラック版

EditPlus 中国語クラック版

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

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強力な PHP 統合開発環境

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

SublimeText3 Mac版

SublimeText3 Mac版

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