キーマッチング操作としてRedisのオンライン環境!あなたは任せることができます!

転送:https://blog.csdn.net/bntx2jsqfehy7/article/details/84207884
ワン、ニュース

次のようにニュースを読み:PHPのエンジニアは*原因データベースのダウンタイムRedisのキーを実行します!
同社の技術部門は、次のような理由から、会社の資金4百万円の損失で、その結果、2件のPOレベルの事故から今年行われます。

オンラインの直接エンジニアPHPのRedisのので、実行します。

keys * wxdb(此处省略)cf8*

そのようなコマンドは、アバランシェ効果がデータベースを発生するように、10秒後に支払い詰まったリンクなどを引き起こし、すべてのデータベースを絞ったトラフィックRDSへのすべての要求は、データベースが生成され、CPUが急増する原因となる、ロックのRedisの結果ダウンタイムイベント。

同社は、再犯と同様の事件が、直接排出されることになると述べ、それは徐々に運用・保守部門の許可後に回復します!

私たちの最近のイベントが行われています。

第二に、鉄の法則

次の業界では、Redisの鉄のルールの仕様は、開発しています:

オンラインRedisのは、キーの定期的なマッチング操作を禁止しました!

しかし、私たちは皆知っている、それは忘れてしまった、事故が起こるしていきますので。
ここでは雪崩のキャッシュを引き起こし、通常の対戦オンライン操作の実装について話をすると、データベースは、最終的には、ダウンタイムの原因となります。

第三に、その理由を分析します

OK、最初のいくつかの単語のナンセンスを言います:

図1に示すように、シングルスレッドのRedis、すべての操作はアトミックであり、データを同時に異常産生しないであろう。

2、時間のかかるRedisの高いコマンドは、すべての要求が減速している原因、一つだけのスレッドの処理時間の多くを取る、非常に危険です。(例えば、時間計算量は、厳密に運用環境での使用を禁止するコマンドキーのO(N)です)。

道を開くために、2つの上にありますが、その理由は明白です!

  • 運用・保守要員キー*より多くの時間がかかり、その操作、およびRedisのがロックされているので、Redisのは、シングルスレッドであるため、

  • Redisのがロックされているため、QPSは、書き込み要求のRedisの数万人のために再度、この時点では比較的高いすべてのハングでいるので、

  • その中にあまりにも多くのスレッドがハングするので、深刻なCPUは、あるサーバのダウンタイムのRedisの結果として、急騰しました。

  • データを取得するには、データベース全体、より少ないRedisのデータに時間を取るすべてのスレッドは、データベースがダウンしています。

同じ危険なコマンドキー*と同様に、次のグループだけではないことに留意すべきです。

640

そのため、資格のRedisの開発や運用・保守は、上記のコマンドを無効にする方法を知っている必要があります。だから私はいつもそのような状況がニュースに現れる理由は、問題の一般的なレベルはスタッフだと思います。

第四に、どのようにこれらのコマンドが何を無効にしますか?

これは、redis.conf、この1つは、我々は次のコマンドを追加しSECURITYです。

640

また、FLUSHALLコマンドのために、あなたはありませんappendonly設定ファイルを設定する必要がある、または他のサーバが起動することができません。

あなたは公式ドキュメントをチェックすることができ、上記のコマンドが見逃している可能性が、注意してください。彼は時間の複雑さはO(N)コマンドで見つけたときにFlushdbとRedisの予想外のコマンドに関連し、このようなセキュリティリスクに加えて、我々は生産に使用していない、注意しなければなりません。例のhgetall、LRANGE、smembers、のzrange、焼結およびその他のコマンドについては、それらを使用することができないではありませんが、これらのコマンドの時間の複雑さはO(N)は、これらのコマンドを使用してそれ以外の場合は、ダウンタイムがキャッシュされる、Nの値をクリアする必要があります。

改善のための5つの提案

業界は、スキャンコマンドキーとSMEMBERSコマンドを改善することをお勧めします。

Redis2.8以降のバージョンでは、新しいコマンドスキャンを持って、記録Redisのバッチをスキャンするために使用することができ、これは確かにクエリ全体の増加によって消費される総時間につながりますが、使用するサービスに影響を与え、Redisのサービスカトンには影響を与えません。

具体的な使用は、すべての詳細は、このドキュメントを自分の下に見つけることができます:

http://doc.redisfans.com/key/scan.html

おすすめ

転載: www.cnblogs.com/xiang--liu/p/11365002.html