この記事では、Redis のスロー クエリとサブスクリプション モードについて紹介します。お役に立てば幸いです。
#スロー クエリ
スロー クエリ ログは、システムがコマンドを実行するときの各コマンドの実行時間です。しきい値、このコマンドを記録するだけです。 [関連する推奨事項:
Redis ビデオ チュートリアル ]
Redis コマンド実行プロセス
- コマンド送信
- コマンドキューイング
#コマンド実行 #結果を返す コマンドの実行は、スロー クエリの統計を取得する時間です
スロー クエリのための 2 つの構成パラメータ
slowlog-log - thrower-than: あらかじめ設定した閾値、単位はミリ秒 「非常に遅い」コマンドを実行すると、閾値を超えた実行時間が記録されます slowlog-max-len:保存するスロー クエリ ログの最大数
パブリッシュおよびサブスクライブ モード
Redis は、メッセージに使用できるパブリッシュおよびサブスクライブ機能を提供します。送信、Redis のパブリッシュおよびサブスクライブのメカニズムは、パブリッシャー、サブスクライバー、チャネルの 3 つの部分で構成されます。
パブリッシュおよびサブスクライブ機能
パブリッシュ コマンドを使用してメッセージを送信します
##subscribe コマンドを使用してチャンネルを購読する
パターン マッチング: 同時に複数のチャンネルを購読する時刻、コマンドは PSUBSCRIBE です。
#Redis 有効期限処理
#アクティブ処理
- タイミング処理。有効期限を設定するときにタイマーを作成し、有効期限が到来するとすぐに削除操作を実行します。この操作は、この間に期限切れのキーがいくつあるかに関係なく、瞬時に行われます。期間、またはサーバーが実行されているかどうか、いずれの場合も削除されるため、CPU にとってはあまり好ましくありません。 定期的な削除。定期的な削除では、期間を設定します。期間ごとに、期限切れのキーが存在するかどうかが検出されます。存在する場合は、それらを削除します。
パッシブ処理
- 期限切れのキーに再度アクセスすると、期限切れかどうかを判定し、期限切れの場合は削除してNILを返すという親切な処理方法です。有効期限が切れた他のキーのために CPU を占有することはありませんが、メモリには優しくありません。キーは期限切れですが、操作される前に削除されず、依然としてメモリ領域を占有します。再度操作されていない期限切れのキーが多数あると、大量のメモリ領域が無駄になります。 3. 期限切れキーの RDB および AOF 処理
save コマンドまたは bgsave コマンドを実行して RDB を作成すると、プログラムはデータベース内のキーをチェックしますが、期限切れキーはチェックされません。新しく作成した RDB ファイルに保存されます。
期限切れのキーが遅延削除または定期的に削除されると、プログラムは AOF ファイルに DEL コマンドを追加して、キーが削除されたことを明示的に記録します。
AOF 書き換えの実行中に、プログラムはデータベース内のキーをチェックし、期限切れのキーは書き換えられた AOF ファイルに保存されません。
メモリ リサイクル
noeviction: デフォルト ポリシー、データは削除されず、すべての書き込み操作は拒否され、クライアント エラー情報が返されます。現時点では、Redis読み取り操作にのみ応答します。
volatitle-rlu: 十分なスペースが確保されるまで、LRU アルゴリズムに従ってタイムアウト属性が設定されたキーを削除します。削除可能なキー オブジェクトがない場合は、noeviction 戦略に戻ります。
allkeys-lru: データにタイムアウト属性が設定されているかどうかに関係なく、十分な領域が解放されるまで、LRU アルゴリズムに従ってキーを削除します。
allkeys-random: 十分なスペースができるまで、すべてのキーをランダムに削除します。
volatitle-random: 十分なスペースが確保されるまで、期限切れのキーをランダムに削除します。
volatitle-ttl: キー/値オブジェクトの ttl 属性に基づいて、最後に期限切れになったデータを削除します。そうでない場合は、noeviction 戦略に戻ります。
プログラミング関連の知識の詳細については、
プログラミング入門
を参照してください。 !
以上がRedis のスロークエリとサブスクリプションモードとは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。