Database Autonomy Service (DAS) は、キャッシュ解析を使用して Redis バックアップファイルをスキャンし、ラージキーを迅速に特定します。この解析により、キーの分布、メモリ使用量、有効期限の詳細を把握することで、パフォーマンスの最適化やキースキューによるメモリ不足エラーの防止に役立ちます。
機能
キャッシュ解析機能は、メモリベースのインスタンスとディスクベースのインスタンスの両方をサポートしています。メモリベースのインスタンスは RDB 永続化スナップショット、ディスクベースのインスタンスはエンジンネイティブのスキャン統計を通じて解析されます。
制限事項
対象のデータベースインスタンスが DAS に接続され、そのステータスが 正常なアクセス である必要があります。
解析では、Redis データ構造と以下の Tair 独自開発データ構造のみがサポートされます:TairString、TairHash、TairGIS、TairBloom、TairDoc、TairCpc、TairZset。
インスタンス仕様が変更された場合、変更前に作成されたバックアップファイルは解析できません。
手順
にログインします。DASコンソール.
左側のナビゲーションウィンドウで、インスタンスモニター.
表示されるページで、管理するデータベースインスタンスを見つけ、インスタンスIDをクリックします。 インスタンス詳細ページが表示されます。
左側のナビゲーションペインで、リクエスト分析 > キャッシュ分析 を選択します。
キャッシュ分析 ページで、右上隅にある 分析 をクリックします。

キャッシュ分析 ダイアログボックスで、以下のパラメーターを設定します。
パラメータ
説明
[分析するノードを選択します。]
解析するノード ID を選択します。
説明インスタンス全体を解析するか、特定のノードを解析するかを選択できます。
[分析方法]
ニーズに応じて、解析用のバックアップファイルを選択します。
[以前のバックアップファイルを使用]: 最新のバックアップファイルを分析します。
[新しいバックアップを作成し、最新のバックアップを分析に使用します。]: インスタンスの現在の状態を反映した新しいバックアップを作成し、分析します。
[過去のバックアップファイルを選択する]: 履歴バックアップファイルを選択して分析します。
説明既存のバックアップファイルを解析する場合は、そのタイムスタンプが期待どおりであることを確認してください。
[区切り文字]
キープレフィックスを識別するための区切り文字を入力します。 デフォルトの区切り文字
:;,_-+@=|#を使用する場合は、何も入力する必要はありません。OK をクリックします。
キャッシュ分析 リストで完了した分析タスクを見つけ、操作 列で 詳細 をクリックして、次の分析結果を表示します:
[基本情報]: 対象インスタンスの基本プロパティと使用された分析方法を表示します。
[関連ノード]:Redis Community Edition クラスター内の各ノードのメモリステータスとキー統計を表示します。 [関連ノード] エリアは、各ノードの [ノード ID]、[メモリ使用量 (バイト)]、および [キー数] をテーブルに表示します。
説明この情報は、Redis Community Edition クラスターインスタンス全体を解析した場合にのみ表示されます。
[詳細]: インスタンスのメモリ使用量の内訳として、先週の 1 日あたりの増加の平均、キーの総数、キーのメモリ使用率、キーの配信、要素のメモリ使用率、要素の配信、キーの有効期限の分布 (メモリ)、キーの有効期限の分布 (数量) などのメトリックが表示されます。また、このセクションでは、メモリ使用量、総数、キープレフィックスを基準にランク付けされた上位 100 個の大きなキーが一覧表示されます。
よくある質問
Q: なぜキャッシュ分析結果に表示されるキーのメモリ使用率は、実際のメモリ使用量より小さいのですか?
A:キャッシュ分析では、RDB ファイル内のキーと値のシリアル化されたサイズのみが解析されますが、これは
used_memoryの一部にすぎません。used_memoryメトリックには、この分析では計算されない、以下のコンポーネントも含まれています。キーと値のデータ構造とポインタによるオーバーヘッド。解析では、jemalloc バイトアラインメントによるメモリオーバーヘッドも除外されます。たとえば、2 億 5,000 万個のキーの場合、このオーバーヘッドは 2 GB から 3 GB を占める可能性があります。
クライアント出力バッファ、クエリバッファ、AOF 書き換えバッファ、レプリケーションバックログ。
Q:Redis キャッシュ解析のキープレフィックス区切り文字は何ですか?
A: デフォルトの区切り文字は
:;,_-+@=|#です。Q:Redis キャッシュ解析で String 型のキーの要素数と要素の長さが同じなのはなぜですか?
A:String 型のキーの場合、要素数はその長さと同じです。
Q: エラー
decode rdbfile error: rdb: unknown object type 116 for key XXには、どのように対処すればよいですか?A:このエラーは、Redis インスタンスに非標準の Bloom 構造が存在することを示します。Bloom 構造を持つキーを削除するか、Redis インスタンスを Tair (Enterprise Edition) にアップグレードして、非標準の Bloom 構造を TairBloom 構造に変更できます。
Q:
decode rdbfile error: rdb: invalid file formatというエラーはどのように対処すればよいですか?A:このエラーは、選択されたバックアップファイルが無効であることを示します。バックアップが作成された後にインスタンス仕様が変更されたかどうかを確認してください。また、透過的なデータ暗号化 (TDE) が有効になっているかどうかも確認してください。暗号化された情報は解析できません。
Q:
decode rdbfile error: rdb: unknown module typeというエラーはどのように対処すればよいですか?A:このエラーは、バックアップファイルに解析でサポートされていない独自開発のデータ構造が含まれていることを示します。
Q:[分析用新規バックアップの作成] を選択した後に
XXX backup failedというエラーが表示された場合、どのように対処すればよいですか?A:インスタンスで BGSAVE または BGREWRITEAOF コマンドが現在実行されているため、キャッシュ解析タスク用のバックアップが失敗しました。オフピーク時間に解析用の新しいバックアップを作成するか、履歴バックアップファイルを選択して解析してください。
Q:Stream データ構造のキャッシュ解析結果が実際の値の数倍になるのはなぜですか?
A:キャッシュ解析機能は、ラディックスツリーと listpack を使用する複雑な Stream データ構造については、推定値のみを算出します。このため、解析結果に誤差が生じる可能性があります。
説明この解析結果の誤差は純粋に統計的なものであり、データベースインスタンスの機能には影響しません。
関連ドキュメント
Redis コンソールでのキャッシュ解析機能の使用方法については、「オフラインキー分析」をご参照ください。
API リファレンス
API | 説明 |
キャッシュ解析タスクを作成します。 | |
キャッシュ解析タスクの詳細を照会します。 | |
キャッシュ解析タスクのリストを照会します。 |