すでに中に含まBenpian アクションラーニングノートシリーズでのRedis
RedisのはRedisの途中でパイプラインパイプラインは、それによって効率を高める、書き込み操作のクライアントとサービス側たら、複数の通信を完了することができます。Redisのトランザクションは、非トランザクション例を使用する方法、その後、実際にはパイプラインの基本的なメカニズムに依存しています。
非トランザクションパイプライン
コマンドは、hmset、hmget、MGET、MSET、rpush、lpush大幅に操作コマンドが同じコマンドを繰り返す必要が簡素化、かつ、等、コマンドの複数の部材を介してサーバに書き込むことができる多くのRedisがありますパフォーマンスが向上します。
なぜ、常にパフォーマンスを向上させるために、トランザクションを使用しません
企業が使用しているため
multi
とexec
トランザクションを処理する際の問題彼らは両方のサーバと同じリソースを消費し、他のコマンドを処理することはできません。
いくつかの具体的な例は、持参するパイプラインの性能を向上させる必要性を実証します
本全体の例では、アクションでのRedis:
更新ユーザトークン操作機能、元の論理演算を含むたびに行ってもよい。この関数ようにサーバとの通信2-5回2が必要 - 10ミリ秒、この速度を算出する完了するために、毎秒単一のサーバ。 100--500要求を処理。
パイプラインの最適化機能の使用を見てください:
この更新操作で、回数は、通信サーバはそれに500--1000要求を改善するために処理することができる毎秒、次いで1/2または1/5、サーバ要求によって低減されます。
理論的には、このアップグレードはそうは実際の試験の後に。非常に良いされている、まだ。著者らは2つのクライアント環境シミュレーションテストを使用し、低遅延ネットワーク環境で、他は遅く高遅延ネットワーク環境で、すべて同じにアクセスサーバー。
テストコード:
次のようにテスト結果は以下のとおりです。
私たちは、あなたがネットワーク環境の影響を受けた場合、その差は明白効率とパフォーマンスの問題で、見ることができます。