tencent cloud

Tencent Cloud EdgeOne

キャッシュキー(Cache Key)の紹介

ダウンロード
フォーカスモード
フォントサイズ
最終更新日: 2026-10-15 17:46:54
AI翻訳・品質チェック済み

キャッシュキー(Cache Key)とは何ですか。

キャッシュキー(Cache Key)は、ユーザーがアクセスするファイルリソースがEdgeOneエッジキャッシュコンテンツにヒットするかどうかを決定するために使用され、ノード内のキャッシュリソースの一意の識別子です。キャッシュヒットはサイトに次のように役立ちます:
オリジンプルリクエスト数を削減し、オリジンサーバーの帯域幅消費を低減します。
ユーザーのアクセスリクエスト速度を向上させます。
キャッシュキーの動作原理は以下の通りです:
ファイルがEdgeOneエッジノードにキャッシュされると、ノードはキャッシュキールールに基づいてファイルに対応するキャッシュキー識別子を生成します。デフォルトでは、キャッシュキーはクライアントリクエストURLとクエリ文字列から計算されます。他のクライアントがこのエッジノードにHTTPリクエストを送信すると、ノードはCache Keyの計算ルールに基づいて、このHTTPリクエストとノード内のすべてのキャッシュリソースのキャッシュキー(Cache Key)が一致するかどうかを比較します。一致する場合、対応するキャッシュリソースをそのクライアントに直接応答します。これがキャッシュヒットです。


キャッシュキー(Cache Key)の用途シーン

キャッシュキー(Cache Key)は、EdgeOneノードが異なるバージョンのファイルに対してマルチバージョンキャッシュコンテンツを確立するために使用されます。クライアントが同一パスを通じてリクエストした場合でも、キャッシュキー(Cache Key)の計算ルールによってユーザーファイルに正しく応答できます。

以下のシナリオ例を通じて、Cache Keyを正しく設定し、リクエストのキャッシュファイルを正しくマッチングさせるとともに、リクエストのオリジンプル率を低減する方法を理解できます。
例えば、ユーザーAとユーザーBはそれぞれ以下のリクエストを持っています:
リクエストA:https://www.example.com/Image/test.jpg?version=1&time=1651752743。
リクエストB:https://www.example.com/Image/test.jpg?version=2&time=1651758319。
シナリオ1:ユーザーがアクセスするファイルパスは完全に同一ですが、クエリ文字列に含まれるversionパラメータが異なるため、バージョンの区別が生じます。上記のリクエストはそれぞれ2枚の異なる画像であり、この場合、ファイルバージョンに影響するパラメータversionをCache Keyに保持して、ノードが対応するファイルコンテンツを正しくキャッシュし、応答できるようにする必要があります。
シナリオ2:ユーザーがアクセスするURL内のクエリ文字列の内容はファイルの内容にまったく影響しません。上記のリクエストに対応するファイルは同一であり、ファイルバージョンに影響しません。この場合、Cache Keyの計算においてすべてのクエリ文字列を無視し、ノード内でのファイルのヒット率を高め、リクエストのオリジンプルを減らす必要があります。

カスタマイズ可能なCache Keyの内容と有効化ルール

EdgeOneはユーザーがCache Keyルールをカスタマイズすることを許可し、クエリ文字列、HTTPリクエストヘッダー、またはcookieを設定してキャッシュを区別することをサポートします。自定义 Cache Keyを通じて、カスタムCache Keyルールの設定方法を理解できます。
注意:
1. キャッシュキーの計算は、クライアントがノードに送信したHTTPリクエストの内容に基づきます。オリジンプルURL書き換え、オリジンプルリダイレクト追跡、オリジンプルHTTPリクエストヘッダー、アクセスURL書き換えはいずれもキャッシュキーの計算に影響しません。
2. EdgeOne内でToken認証を設定した場合、認証内容はキャッシュキーの計算に含まれません。
3. EdgeOne内でImage Processingパラメータを有効にした場合、リクエストに含まれるImage ProcessingパラメータはデフォルトでCache Keyの計算に含まれます。

クエリ文字列

クエリ文字列とは、リクエストURL内の?より後にある文字列パラメータ(1つ以上のパラメータを含み、&で区切られます)を指します。例えば、https://www.example.com/images/example.jpg?color=blue&size=large内のcolor=blue&size=largeです。

EdgeOneは、指定したクエリ文字列の内容をカスタマイズして保持し、キャッシュを区別することをサポートします。
注意:
クエリ文字列をキャッシュキーとして保持する場合、パラメータの位置順序が変わると、キャッシュキーも変わります。
例えば、クライアントがそれぞれ以下のリクエストを送信した場合:
リクエストA:https://www.example.com/Image/test.jpg?version=1&type=a。
リクエストB:https://www.example.com/Image/test.jpg?version=2&type=a。
リクエストC:https://www.example.com/Image/test.jpg?type=a&version=1。
設定
キャッシュ動作
クエリ文字列の設定をすべて保持にします。
リクエストAとリクエストBに含まれるパラメータの内容が異なるため、異なるキャッシュバージョンに対応します。リクエストAとリクエストCのパラメータの内容は一致していますが、順序が異なるため、異なるキャッシュバージョンに対応します。
クエリ文字列の設定をすべて無視にします。
リクエストA、B、Cはすべて同一のキャッシュバージョンに対応します。
クエリ文字列の設定を指定パラメータ Type の保持にします。
リクエストA、Bのパラメータの順序と内容は完全に一致しており、同一のキャッシュバージョンに対応します。リクエストBとリクエストCのパラメータの内容は同じですが、順序が異なるため、異なるキャッシュバージョンに対応します。
クエリ文字列の設定を指定パラメータ Type の無視にします。
リクエストAとリクエストBの残りのパラメータの内容が異なるため、異なるキャッシュバージョンに対応します。リクエストAとリクエストCの残りのパラメータの内容は一致していますが、順序が異なるため、異なるキャッシュバージョンに対応します。

HTTPリクエストヘッダー

EdgeOneは、指定したHTTPリクエストヘッダーをキャッシュキーCache Keyの計算に含めることをサポートしています。EdgeOneエッジノードは、リクエストヘッダーの内容に基づいて異なるキャッシュバージョンを作成します。リクエストヘッダーの順序が変わっても、Cache Keyの計算には影響しません。
例えば、指定したHTTPリクエストヘッダーUser-Agentをキャッシュキー計算に含める場合、以下のリクエストAとリクエストBはURLとパラメータの内容が同じですが、User-Agentヘッダーの内容が異なるため、異なるキャッシュバージョンに対応します。
リクエストA:https://www.example.com/Image/test.jpg?version=1&type=a、User-Agent:chromeを含みます。
リクエストB:https://www.example.com/Image/test.jpg?version=1&type=a、User-Agent:iosを含みます。

Cookie

EdgeOneは、指定したCookie内のパラメータをキャッシュキーの計算に含めることをサポートしています。Cookieのパラメータと内容に基づいてキャッシュバージョンを区別します。Cookie内の複数のパラメータがCache Keyの計算に関与する場合、パラメータの順序が変わってもCache Keyの計算には影響しません。
例えば、指定したCookie内のパラメータUserをキャッシュキー計算に含める場合、以下のリクエストAとリクエストBはパラメータの内容が同じであるため、同一のキャッシュに対応します。リクエストAとリクエストCはパラメータの内容が異なるため、異なるバージョンのキャッシュに対応します。
リクエストA:https://www.example.com/Image/test.jpg?version=1&type=a、Cookie:User=A;ID=1を含みます。
リクエストB:https://www.example.com/Image/test.jpg?version=1&type=a、Cookie:User=A;ID=2を含みます。
リクエストC:https://www.example.com/Image/test.jpg?version=1&type=a、Cookie:User=B;ID=1を含みます。

詳細を見る



ヘルプとサポート

この記事はお役に立ちましたか?

フィードバック