ホームページ  >  記事  >  データベース  >  Redis はシングルスレッドですが、なぜそれほど効率的なのでしょうか?

Redis はシングルスレッドですが、なぜそれほど効率的なのでしょうか?

(*-*)浩
(*-*)浩オリジナル
2019-11-21 14:34:563709ブラウズ

Redis はシングルスレッドですが、なぜそれほど効率的なのでしょうか?

これには、さまざまなパフォーマンスのロックは必要ありません。単純な Key-Value だけでなく、リストやハッシュなどの複雑な構造も使用できます。これらの構造はパフォーマンスを向上させる可能性があります。長いリストの後の要素の追加、ハッシュへのオブジェクトの追加または削除など、非常にきめの細かい操作。これらの操作では大量のロックの追加が必要になる場合があり、その結果、同期オーバーヘッドが大幅に増加します。 つまり、単一スレッドの場合は、さまざまなロックの問題を考慮する必要がなく、ロック操作やロック解除操作がなく、デッドロックの可能性によるパフォーマンスの消費もありません。

シングルスレッド マルチプロセス クラスター ソリューション

シングルスレッドの能力は実際に非常に強力であり、各コアの効率も非常に高くなります。マルチスレッドはシングルスレッドよりも当然優れています。スレッドには高いパフォーマンス限界がありますが、今日のコンピューティング環境では、単一マシンのマルチスレッドの上限ですらニーズを満たすことができないことがよくあります。さらに検討する必要があるのは、マルチスレッドです。 - サーバー クラスタリング ソリューション: これらのソリューションのマルチスレッド テクノロジは依然として同じですが、役に立ちません。

したがって、シングルスレッド、マルチプロセス クラスターは流行のソリューションです。

CPU 消費量

単一スレッドを使用して不必要なコンテキストの切り替えや競合状態を回避し、マルチプロセスやマルチスレッドによる切り替えは発生しません。 CPUを消費します。

しかし、CPU が Redis のボトルネックになった場合、またはサーバーの他の CPU コアをアイドル状態にしたくない場合はどうすればよいでしょうか?

さらにいくつかの Redis プロセスを開始することを検討できます。Redis はリレーショナル データベースではなくキーと値のデータベースであり、データ間に制約はありません。どのキーがどの Redis プロセスに配置されているかをクライアントが区別できれば問題ありません。

以上がRedis はシングルスレッドですが、なぜそれほど効率的なのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。