redis のシングル スレッドとは何ですか? Redis がシングルスレッドを使用するのはなぜですか?シングルスレッド Redis はなぜこれほど高速なのでしょうか?次の記事では分析を行っていますので、お役に立てれば幸いです。
1. 基本概念
2. Redis が単一スレッドを使用する理由
マルチスレッドのオーバーヘッド
マルチスレッドを使用すると、システムのスループット (リクエストあたり) が向上し、システムのスケーラビリティが向上します-
# スレッド数が無制限に増加すると、スループットが低下します。-
共有リソースは、共有データ構造など、複数のスレッドによって同時にアクセスされます。
- スレッドの安全性により、パフォーマンスが犠牲になります
粗いロックによりすべてのシリアル化が発生し、スレッドの増加に伴ってシステムのスループット レートが増加します
-
-
-
したがって、同時リソース管理を節約するために、redis は単一のスレッドを使用して、すべての操作が確実にシリアル化されるようにします
3. シングルスレッド なぜ redis は速いのですか?
redis のほとんどの操作はメモリ内の効率的なデータ構造です
redis は多重化メカニズムを採用していますネットワーク内の多数のクライアント要求を処理し、高いスループット レートを実現するため
##ソケット通信プロセス (ネットワーク IO 処理キーと値のペアの読み取りおよび書き込みネットワーク IO 処理)
SimpleKV Get リクエストを処理するには
Linux の IO 多重化メカニズム
IO 多重化メカニズムLinux では、複数の IO ストリームを処理する 1 つのスレッドを指します。select/poll
単一のスレッドには、同時にリッスンする複数のソケットと接続されたソケットが存在します
特定の実装
- #FD は複数のソケットです
#Redis は epoll メカニズムを使用して、カーネルがソケットをリッスンできるようにします-
#Redis は複数のクライアントのリクエストに接続して処理できるため、同時実行性が向上します。redis は本当にシングルスレッドですか
#ネットワーク上の IO およびデータの読み取りおよび書き込み操作にはスレッドが使用されます。
シングル スレッドを使用する理由
マルチスレッド開発における同時実行制御の問題を回避するため。 -
多重化 IO モデルは密接に関連しています。
シングルスレッドがなぜ速いのか
-
プログラミング関連の知識の詳細については、次のサイトをご覧ください:
以上がRedis がシングルスレッドを使用するのはなぜですか?なぜそんなに速いのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。