Redis6はついにマルチスレッドバージョンの到来を告げました!

今日は5月3日でメーデーの休日は半ば過ぎて、休日のバランスが足りない方も多いと思います!昨日、Redis 6.0が正式にリリースされ、Redisはついにマルチスレッドの先駆けとなりました!

Redis 6.0バージョンは当初2019年末にリリースされる予定でしたが、変更が多すぎるため、6.0.1の公式バージョンは昨日まで正式にリリースされませんでした。

Redis6はついにマルチスレッドバージョンの到来を告げました!
Redis 6.0バージョンアップデートは、主に5つの部分で構成されています。それらは、Redis 6.0-RC1、Redis 6.0-RC2、Redis 6.0-RC3、Redis 6.0-RC4、Redis 6.0.0GAです。

詳細の部分では、私の統計によると、60を超える新機能と修正されたバグがあります。

最もセンセーショナルな機能の1つは、マルチスレッドIO関数です。実際、Redisはリリース以来シングルスレッドプログラムではありませんでした。厳密に言えば、Redisはシングルスレッドではありません。また、役に立たない接続の解放、大きなキーの削除など、いくつかの遅い操作を処理するために機能するバックグラウンドスレッドもあります。

ただし、クライアントコマンドリクエストの取得(ソケット読み取り)、解析、実行、コンテンツリターン(ソケット書き込み)などはすべて1つのスレッドで処理され、すべての操作は1つずつ(メインスレッド)シリアルに実行されます。これもRedisThereです。 「シングルスレッド」の定義のソースです。

シングルスレッドメカニズムにより、Redisの内部実装の複雑さが大幅に軽減されます。ハッシュの遅延Rehash、Lpush、およびその他の「スレッドセーフでない」コマンドは、ロックなしで実行できます。

しかし、この一連のメカニズムにより、RedisのQPSがそれを次のレベルに引き上げることも困難になります。Redis独自のデータ構造設計とメモリ管理はほぼ完璧になっています。Redisスタンドアロンのパフォーマンスをさらに向上させるために、マルチスレッドの並行処理タスクの導入は、memcachedと連携した最も直感的なソリューションの1つです。

したがって、マルチスレッドバージョンのRedisは、長い間広範な議論を呼んでいます。

Redis6はついにマルチスレッドバージョンの到来を告げました!
マルチスレッド機能がコミュニティで長い間繰り返し言及された後、Redisの作者であるantirezは、ついにRedis6にマルチスレッドを追加しました。

ネットワークの読み取りと書き込みを行う読み取り/書き込みシステムコールは、Redisの実行中にCPU時間の大部分を占めるため、ネットワークの読み取りと書き込みをマルチスレッド方式にすると、パフォーマンスが大幅に向上します。これで最初のバージョンが実装され、クライアントに応答する書き込み側の部分が完了し、メインスレッドとIOスレッド間の相互排他ロックが解除され、ビジーループが待機に使用されます。 ioスレッド作業の終了。この部分は可能です。パフォーマンスが50%向上します。

Redis6はついにマルチスレッドバージョンの到来を告げました!
現在、一部の外国のネチズンは、Redisのシングルスレッドバージョンとマルチスレッドバージョンでパフォーマンステストを実施しています。

Redis6はついにマルチスレッドバージョンの到来を告げました!
Redis6はついにマルチスレッドバージョンの到来を告げました!
上の図からわかるように、マルチスレッドの利点は依然として非常に詳細であり、ほぼ2倍の改善が見られます。

マルチスレッドに加えて、このアップグレードにより、パフォーマンス、プロトコル、およびアクセス制御が大幅に改善されました。実稼働システムに影響を与えないように、すべての人が完全にテストしてアップグレードしていることを願っています。さらに、Redisはまだコマンドを実行してメモリを操作するための単一のスレッドであることに言及する価値があります!

Redis 6バージョンの詳細については、https//raw.githubusercontent.com/antirez/redis/6.0/00-RELEASENOTESをお読みになることをお勧めします

おすすめ

転載: blog.51cto.com/15127565/2664765
おすすめ