他のより基本的な記事のjava:
Javaベースの学習(ディレクトリ)
スロークエリ
材料を学ぶ
高度な機能のRedis -スロークエリ
2つの構成パラメータスロークエリ
Redisのは提供slowlog-log-slower-than
し、slowlog-max-len
これら二つの問題を解決するように構成される。文字通りの意味からわかるように、slowlog-log-slower-than
この予め設定された閾値であり、その単位はマイクロ秒(1秒= 100万マイクロ秒)デフォルト値は10000」の実装なら非常に遅い「コマンド(*例えば、キー)、10,000以上のマイクロ秒の実行時間あれば、それはスロークエリログに記録されます。
場合はslowlog-log-slower-than=0
、すべてのコマンドを記録し、slowlog-log-slower-than<0
任意のコマンドが記録されません。
実際にはRedisのは、スロークエリログを保存するために、リストを使用してslowlog-max-len
、そのリストの最大長。スロークエリログリストが、その最大の長さで早いの挿入であるとき、ときスロークエリを満たすために新しいため、このリストに挿入しましたコマンドがリストから削除され、例えば、slowlog-max-len
物品65は、スロークエリーログ、カラム上の最初のデータキューの先頭に挿入されたときに、物品65は、カラムにクエリを遅くする64の長さを備えています。
Redisのの設定を変更するには2つの方法があり、
- 一つは、設定ファイルを変更することです
- もう一つは、動的に変更するためのconfig setコマンドを使用することです
設定setコマンドを使用して、次の例では、slowlogは-ログ遅く、より微妙な.slowlog-MAX-LEN 20,000を1024:
config set slowlog-log-slower-than 20000
config set slowlog-max-len 1024
config rewrite
复制代码
実践の概要
スロークエリ機能が効果的に私たちが存在する可能性がRedisのボトルネックを見つけることができますが、実際の使用では、次の点に注意してください。
-
slowlog-max-len
:オンラインは、大規模なスロークエリリストを転送することが推奨され、Redisのコマンドは、長いステージ操作記録遅いクエリを行いますと、大量のメモリを占有されることはありませんスロークエリスロークエリのリストを高めるために低減することができ、たとえば、ラインを設定することができ、除去することができます。 1000個以上。 -
slowlog-log-slower-than
:実行時間がコマンドを超えた場合に10ms以上のデフォルト値は、遅いクエリを決定し、高トラフィックのシナリオでは、量によりRedisのRedisの同時シングルスレッドの適切なコマンドに応じて値を調整する必要がある。1ミリ秒以上の、その後のRedisまでOPSをサポートしません1000年に高推薦でのRedisのOPSシーンにとても1ミリ秒。 -
記録のみコマンドスロークエリの実行時間はコマンドキューイングおよびネットワーク伝送時間は含まれません。そのため、クライアントコマンド実行時間は、命令の実際の実行時間よりも大きくなります。コマンドキューイングするので、スロークエリは、他のコマンドをブロックカスケードにつながることができ、クライアントがタイムアウトが発生した要求したときにそのため、あなたは相当遅いクエリはスロークエリコマンドは、障害物のカスケードを引き起こすかどうか分析することがある時にこの点を確認する必要があります。
-
スロークエリログにFIFOキューである、すなわち、いくつかのスロークエリコマンドを失う可能性があり、よりスロークエリの場合ならば、これを防ぐために、あなたが定期的に実行できる
slowlog get
コマンドは、スロークエリログに保持されます他のストレージ(例:MySQLの、elasticSearchなど)、および視覚化ツールで照会することができます。
piplineとサービス
パブリッシュおよびサブスクライブ
材料学習
パブリケーションにRedisのサブスクリプションを-達成Jedis
浅いから深いにいくつかの方法では、[]サブスクリプションは、Redisのを達成公開
ビットマップ/ Hyperloglog /地域
学習教材の
利用可能性のRedis(6):ビットマップのスイスアーミーナイフ、HyperLoglog及びGEO
Redisのsetbitと(ビットマップ)統計アクティブユーザー