公式 FAQ には、Redis はメモリベースの操作であるため、CPU が Redis のボトルネックではない、と記載されています。Redis のボトルネックはおそらくマシンのサイズです。メモリまたはネットワーク帯域幅。シングルスレッドは実装が簡単で、CPU がボトルネックにならないため、シングルスレッド ソリューションを採用するのが合理的です (推奨学習: Redis ビデオ チュートリアル )
参照 この時点で、あなたは泣いているかもしれません!単一スレッドを使用して Redis をこれほど高速にするには、いくつかの主要な技術的ポイントがあるだろうと思っていましたが、私たちをだましているように見える公式の回答は期待していませんでした。ただし、Redis が高速である理由はすでに明確に説明できており、シングルスレッド モードですでに高速であるため、マルチスレッドを使用する必要はありません。
ただし、シングルスレッドのアプローチではマルチコア CPU のパフォーマンスを活用できませんが、単一のマシン上で複数の Redis インスタンスを開くことでパフォーマンスを向上させることができます。
警告 1:ここで強調している単一スレッドには、ネットワーク リクエストを処理するためのスレッドが 1 つしかありません。正式な Redis サーバーが実行されている場合は、複数のスレッドが存在する必要があります。このスレッドでは、誰もがここに明確な注意を払う必要があります。たとえば、Redis が永続化されると、サブプロセスまたはサブスレッドとして実行されます (特定のサブスレッドまたはサブプロセスについては、読者が詳しく調べる必要があります)。テストサーバーの武器で、プロセスの下にスレッドを見つけました:
ps コマンドの「-T」パラメータは、スレッドを表示することを示します (おそらく SPID 列も含まれます)。 「SID」列はスレッドIDを示し、「CMD」列はスレッド名を示します。
警告 2: 上の図の FAQ の最後の段落では、Redis 4.0 バージョンからマルチスレッドがサポートされると述べていますが、特定の操作ではマルチスレッドのみが実行されます。手術!したがって、この記事が将来のバージョンでもシングルスレッドになるかどうかは、読者が確認する必要があります。
以上がRedis シングルスレッドとは何を意味しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。