#Redis はシングルスレッドであるため、スレッドのコンテキスト切り替えにかかる時間を大幅に節約できます。
なぜ Redis はシングルスレッドなのですか?
1. 公式サイトの説明
Redis はメモリベースの操作であるため、CPU が Redis のボトルネックになることはありません。 Redis のボトルネックは、おそらくマシンのメモリまたはネットワーク帯域幅のサイズです。シングルスレッドは実装が簡単で、CPU がボトルネックにならないため、シングルスレッド ソリューションを採用するのは合理的です。
(ビデオ チュートリアルの推奨: java ビデオ )
2. パフォーマンス指標
通常のノートブックは 1 秒あたり数百件を簡単に処理できます。何千ものリクエストの中から。
3. 詳細な理由
1. さまざまなロックによるパフォーマンスの消費は必要ありません
すべての Redis データ構造が単純なキー値であるわけではありません ( Key-Value) ですが、リストやハッシュなどの複雑な構造を持っています。これらの構造は、長いリストの末尾に要素を追加したり、それらをハッシュに追加したり、オブジェクトを削除したりするなど、きめ細かい操作を実行できます。
これらの操作には非常に多くのロックが必要となる場合があり、その結果、同期オーバーヘッドが大幅に増加します。つまり、シングルスレッドの場合は、さまざまなロックを考慮する必要がなく、ロックの解放操作や、デッドロックの可能性によるパフォーマンスの消費もありません。
2. シングルスレッド マルチプロセス クラスター ソリューション
シングルスレッドの機能は実際には非常に強力であり、各コアの効率も非常に高くなります。マルチスレッドでは、当然のことながら、シングル スレッドよりもパフォーマンスの制限が高くなる可能性があります。ただし、今日のコンピューティング環境では、単一マシンのマルチスレッドの制約さえ満たせないことがよくあります。さらなる検討が必要なのは、マルチサーバー クラスタリング シナリオですが、これらのシナリオにおけるマルチスレッド テクノロジはまだ利用できません。
したがって、シングルスレッドのマルチプロセスクラスターは優れたソリューションです。
推奨チュートリアル: java エントリー プログラム
以上がRedis がシングルスレッドなのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。