ホームページ データベース Redis Redis がシングルスレッドである理由

Redis がシングルスレッドである理由

Jun 17, 2019 pm 01:36 PM
redis

では、なぜ Redis はシングルスレッドなのか

Redis がシングルスレッドである理由
まず、Redis が高速であることを理解する必要があります。公式 FAQ には、Redis はメモリベースの操作であるため、CPU が Redis のボトルネックではない、と記載されていますが、Redis のボトルネックはおそらく マシンのメモリまたはネットワーク帯域幅のサイズです。シングルスレッドは実装が簡単で、CPU がボトルネックにならないため、シングルスレッド ソリューションを採用するのが合理的です (結局のところ、マルチスレッドを使用すると多くの問題が発生します!)。 (推奨される学習: Redis ビデオ チュートリアル )これを見たら泣くかもしれません。単一スレッドを使用して Redis をこれほど高速にするには、いくつかの主要な技術的ポイントがあるだろうと思っていましたが、私たちをだましているように見える公式の回答は期待していませんでした。ただし、Redis が高速である理由はすでに明確に説明できており、シングルスレッド モードで既に高速であるため、マルチスレッドを使用する必要はありません。

ただし、シングルスレッドのアプローチではマルチコア CPU のパフォーマンスを活用できませんが、単一のマシン上で複数の Redis インスタンスを開くことでパフォーマンスを向上させることができます。

警告 1:

ここで強調している単一スレッドには、ネットワーク リクエストを処理するためのスレッドが 1 つしかありません。正式な Redis サーバーが実行されている場合は、複数のスレッドが存在する必要があります。このスレッドでは、誰もがここに明確な注意を払う必要があります。たとえば、Redis が永続化されると、サブプロセスまたはサブスレッドとして実行されます (特定のサブスレッドまたはサブプロセスについては、読者が詳しく調べる必要があります); The " ps コマンドの -T" パラメータは、表示スレッドを示します (スレッドを表示、場合によっては SPID 列も表示されます)。「SID」列はスレッド ID を示し、「CMD」列はスレッド名を示します。

警告 2:

公式 FAQ の最後の段落には、Redis バージョン 4.0 からマルチスレッドがサポートされると記載されていますが、マルチスレッド操作は特定の操作でのみ実行されます。したがって、この記事が将来のバージョンでもシングルスレッドになるかどうかは、読者が確認する必要があります。 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)

指定された構成ファイルを使用して再起動します 指定された構成ファイルを使用して再起動します Apr 10, 2025 pm 02:42 PM

構成ファイルを指定してRedisを再起動します。1。構成ファイル(通常はconfサブディレクトリにあるredis.conf)を見つけます。 2。必要な構成(ポートの変更など)を変更します。 3. redis-server/path/to/redis.confコマンドを使用して、構成ファイルを介してredisを再起動します(/path/to/redis.confは変更された構成ファイルのパスです)。 4. Redis-Cliを使用して、それが正常に再起動されたことを確認します。

Redistartデータはまだそこにあります Redistartデータはまだそこにあります Apr 10, 2025 pm 02:45 PM

RedisTartの再起動後もデータは存在します。 Redisはデータをメモリに保存し、再起動してもメモリデータは削除されません。また、Redisは永続性を提供し、RDBまたはAOFファイルを介してハードディスクにデータを保存し、再起動後に永続的なファイルからデータを回復できるようにします。

Redis Restartサービスはどこですか Redis Restartサービスはどこですか Apr 10, 2025 pm 02:36 PM

さまざまなオペレーティングシステムでRedisサービスを再起動する方法:Linux/MacOS:SystemCTLコマンド(SystemCTL RestArt Redis-Server)またはServiceコマンド(Service Redis-Server Restart)を使用します。 Windows:services.mscツール([実行]ダイアログボックスに「serversis.msc」を入力してEnterを押します)を使用し、「redis」サービスを右クリックして[再起動]を選択します。

Redis RestArtコマンドとは何ですか Redis RestArtコマンドとは何ですか Apr 10, 2025 pm 02:39 PM

Redis RestArtコマンドはRedis-Serverです。このコマンドは、構成ファイルのロード、データ構造の作成、Redisサーバーの開始、クライアント接続をリッスンするために使用されます。ユーザーは、端末で「Redis-Server [Options]」コマンドを実行して、Redisサーバーを再起動できます。一般的なオプションには、バックグラウンド操作、構成ファイルパスの指定、リスニングポートの指定、データが失われた場合にのみスナップショットのリロードが含まれます。サーバーを再起動すると、すべてのクライアント接続が切断されることに注意してください。再起動する前に必要なデータを保存してください。

すべてのデータをRedisでクリーニングする方法 すべてのデータをRedisでクリーニングする方法 Apr 10, 2025 pm 05:06 PM

すべてのRedisデータをクリーニングする方法:Redis 2.8以降:Flushallコマンドはすべてのキー価値ペアを削除します。 Redis 2.6以前:delコマンドを使用してキーを1つずつ削除するか、Redisクライアントを使用してメソッドを削除します。代替:Redisサービスを再起動し(注意して使用)、またはRedisクライアント(flushall()やflushdb()など)を使用します。

Redisのさまざまなインスタンスがどのように通信するか Redisのさまざまなインスタンスがどのように通信するか Apr 10, 2025 pm 05:15 PM

Redisインスタンスの間に通信にはいくつかのメカニズムがあります。Pub/Sub:Publish/Sub Mode、効率的で低遅延のメッセージングを可能にします。クラスターモード:分散展開方法。高可用性とフォールトトレランスを提供します。クロスインスタンスコマンド:一時的な運用または管理目的に適したコマンドを別のインスタンスに直接送信できるようにします。

クリアデータを再起動します クリアデータを再起動します Apr 10, 2025 pm 02:48 PM

Redisはデータをメモリに保存し、RDBやAOFなどの永続的なストレージからデータをロードするため、データをクリアしません。永続的なストレージには2種類のタイプがあります。RDBとAOF。これにより、再起動後にデータが失われないようにします。さらに、Redisには、データの損失を防ぐために、スナップショットオプション、複製、センチネルなどの他の保護があります。ただし、まれに、永続的なストレージの破損や偶発的な終了など、データの損失につながる可能性があります。

Redisのデータベース内のすべてのキーのメモリ使用量を表示する方法 Redisのデータベース内のすべてのキーのメモリ使用量を表示する方法 Apr 10, 2025 pm 03:03 PM

Redisは、データベース内のすべてのキーのメモリ使用量を表示する2つのコマンドを提供します。メモリ使用法AllKeys:すべてのキーのメモリ使用量を返します。 "key"(key ")#メモリ使用(バイト)メモリキースペース:各データベース内のすべてのキーのメモリ使用情報の詳細なリストを提供します。

See all articles