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