次の記事では、Redis のホットスポット キーを理解し、ホットスポット キーが生成される理由、ホットスポット キーを見つける方法、およびホットスポット キーの解決策を紹介します。
1. ユーザーが消費するデータは、実際のデータよりもはるかに大きいです。 generated
ホット キーの問題は、ある瞬間に Redis 上の固定キーにアクセスするリクエストが大量に発生し、キャッシュの故障が発生し、リクエストがすべてヒットすることです。 DB は、キャッシュ サービスと DB サービスを圧倒し、アプリケーション サービスの可用性に影響を与えます。 [関連する推奨事項: Redis ビデオ チュートリアル ]
最も一般的なのは、Weibo での人気の検索 (XX 有名人の結婚/浮気など) です。すると、○○星に関するキーが瞬時に増加し、ホットデータ問題が発生します。 Weibo も時々クラッシュします。
同様に、広く公開され視聴されるホットなニュース、ホットなコメント、有名人のライブ放送なども、読む量が増えて書く量が減るという典型的なシナリオでも、ホットな問題を引き起こすことになります。
2. シャーディングのリクエストが集中し、単一サーバーのパフォーマンス制限を超えます
サーバー側のデータを読み込んでアクセスする場合、 シャーディング
を実行すると、特定のホストサーバー上の対応するキーにアクセスすることになり、サーバーの制限を超えるとホットキーの問題が発生します。
##1. トラフィックが集中し、上限に達します。物理ネットワークカード。
特定のホットスポット キーのリクエストが、特定のホストのネットワーク カードの上限を超えると、トラフィックが過度に集中し、サーバー内の他のサービスが続行できなくなります。 。2. リクエストが多すぎるため、キャッシュ シャーディング サービスが無効になります。
ホットスポットが集中しすぎて、ホットスポット キーのキャッシュが大きすぎて現在のキャッシュ容量を超えると、キャッシュ シャーディング サービスが過負荷になります。3. DB の故障により、ビジネスに雪崩が発生します。
キャッシュサービスがクラッシュし、その際に別のリクエストが発生した場合、バックグラウンドDBにキャッシュされますが、DB自体の性能が低いため、リクエストが浸透しやすくなります。大きなリクエストに直面すると、この現象が発生し、さらにアバランシェ現象を引き起こし、機器のパフォーマンスに重大な影響を及ぼします。 #ホット キーの検出1. ビジネス経験を活用して、どのキーがホットであるかを推定します 実際、この方法はかなり実現可能です。例えば、フラッシュセール中の商品であれば、その商品のキーはホットキーであると判断できる。欠点は明らかで、すべての企業がどのキーがホット キーであるかを推定できるわけではありません。
#2. クライアント側で収集#この方法は、redis を操作する前にデータ統計のコード行を追加する方法です。データを収集するにはさまざまな方法があり、外部通信システムに通知メッセージを送信することもできます。欠点は、クライアント コードへの侵入を引き起こすことです。
3. プロキシ層での収集 を使用できます。収集とレポートはプロキシ レイヤーで実行できますが、すべての Redis クラスター アーキテクチャにプロキシがあるわけではないという欠点は明らかです。 4. Redis 組み込みコマンド 5. 自己キャプチャ パケットの評価Redis クライアントは、TCP プロトコルを使用してサーバーと対話します。 を使用します。ポートを監視し、RESP プロトコル ルールに従ってデータを解析し、分析を行うための独自のプログラムを作成します。欠点は、開発コストが高いこと、メンテナンスが難しいこと、パケット損失の可能性があることです。 1. 2次キャッシュを使用しますたとえば、use 、 この時点で同じキーに対するリクエストが 100,000 件あると仮定すると、ローカル キャッシュがない場合、これらの 100,000 件のリクエストは同じ Redis に直接送信されます。 2. 読み取りと書き込みの分離読み取りと書き込みの分離とは、 であるリクエストを ## に送信することです。 # Master プログラミング ビデオmonitor コマンド
上記の 5 つのオプションには、それぞれ独自の長所と短所があります。ビジネス シナリオに基づいて決定してください。
spring cache
、または HashMap
も機能します。ホット キーを検出したら、そのホット キーをシステムの JVM にロードします。 この種のホット キー リクエストの場合、redis レイヤーにアクセスせずに、jvm から直接取得されます。
モジュール内で、
Read のリクエストが
ReadOnly モジュールに送信されます。
モジュール内の読み取り専用ノードはさらに拡張でき、このキーを複数の Redis に保存できます。ホット キー リクエストが受信されると、バックアップのある Redis サーバーをランダムに選択し、値にアクセスしてデータを返します。これにより、ホットリーディングの問題が効果的に解決されます。
以上がRedis でホットスポット キーはどのように生成されますか?の解き方?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。