Praca z kluczami pamięci podręcznej

Przeglądasz dokumentację Apigee Edge.
Przejdź do Dokumentacja Apigee X.
informacje.

Korzystając z zasad dotyczących pamięci podręcznej, zapewniasz unikalność kluczy wartości z pamięci podręcznej, konfigurując pamięć podręczną klawiszy. Klucz pamięci podręcznej wraz z innymi wartościami, które możesz skonfigurować, zapewnia niezawodny sposób podane w nim dane. Kluczy pamięci podręcznej są używane z zasadami wypełniania pamięci podręcznej, zasadą lookupCache, zasadąInvalidateCache i Pamięć podręczna odpowiedzi .

Wartości elementów konfiguracji – <CacheKey>/<KeyFragment>, <Scope> i <Prefix> – są połączone w celu utworzenia identyfikatora powiązanego z: do wartości wpisanej w pamięci podręcznej. Użyjesz tej samej konfiguracji, aby pobrać wartość.

Używając tych elementów konfiguracji zasady pamięci podręcznej, możesz utworzyć klucz pamięci podręcznej:

Element konfiguracji pamięci podręcznej Opis
<CacheKey>/<KeyFragment> Użyj połączonych elementów <KeyFragment> (<CacheKey>) do określ unikalny identyfikator wpisów w pamięci podręcznej. Wartościami fragmentów kluczy mogą być literały statyczne lub ustawione na podstawie zmiennych.
<Scope> lub <Prefix> Aby kontynuować, użyj elementów <Scope> lub <Prefix> kluczy pamięci podręcznej przestrzeni nazw. <Scope> wylicza listę wstępnie zdefiniowanych wartości. Element <Prefix> zastępuje element <Scope> wartością według własnego uznania.

Wartości te są połączone w podany niżej sposób: <Scope> lub Wartości <Prefix> oddzielonych od wartości fragmentów kluczy za pomocą podwójnych podkreśleń. Kilka wartości KeyFragment jest też rozdzielonych podwójnymi podkreśleniami.

zakres | prefix__keyfragment[__keyfragment]

Dzięki pamięci podręcznej odpowiedzi zasad, możesz opcjonalnie dołączyć ten klucz pamięci podręcznej do wartości z odpowiedzi Accept nagłówek.

Użycie <CacheKey>

Element <CacheKey> konfiguruje sposób tworzenia unikalnego identyfikatora przez Edge (klucz) dla każdego tworzonego przez niego wpisu pamięci podręcznej. Gdy Edge pobiera wartość z pamięci podręcznej, używa pamięci podręcznej aby znaleźć właściwą wartość. W zasadzie ResponseCache jedna konfiguracja definiuje klucz zarówno do buforowania, jak i pobierania. W zasadach PopulationCache i lookupCache każda zasada musi mają identyczne elementy <CacheKey>, aby zapewnić, że wartość pobrana z metody odpowiada wpisanej w niej wartości.

Element <CacheKey> może zawierać wiele elementów <KeyFragment> elementów. W czasie działania wartości określone przez Elementy <KeyFragment> są połączone dwoma podkreśleniami w aby stanowić część klucza pamięci podręcznej.

Na przykład ta konfiguracja tworzy wartość hello__world do użycia w kluczu pamięci podręcznej:

<CacheKey>
    <KeyFragment>hello</KeyFragment>
    <KeyFragment>world</KeyFragment>
<CacheKey>

Możesz też użyć wartości zmiennych w kluczu pamięci podręcznej, odwołując się do tej zmiennej w <KeyFragment>, jak tutaj:

<KeyFragment ref="variable_name"/>

Aby na przykład uwzględnić w kluczu pamięci podręcznej element Content-Type z wiadomości z żądaniem, wykonaj następujące czynności:

<KeyFragment ref="request.header.Content-Type"/>

W tej konfiguracji zmienna request.header.Content-Type zawiera element wartość application/json.

<CacheKey>
  <KeyFragment>apiAccessToken</KeyFragment>
  <KeyFragment ref="request.header.Content-Type" />
  <KeyFragment>bar</KeyFragment>
</CacheKey>

W ten sposób otrzymasz klucz pamięci podręcznej kończący się cyframi apiAccessToken__application/json__bar.

Listę zmiennych, których możesz używać, znajdziesz w tym artykule.

Klucze pamięci podręcznej wyodrębnione z zapytania parametry

Korzystanie ze zmiennych, takich jak request.queryparam.<queryparam_name> oraz request.querystring możesz skonfigurować klucz pamięci podręcznej, tak aby zawierał części ciągu zapytania żądania. Dla: poniższy adres URL używa dwóch parametrów zapytania – param1 i param2 – których można używać Twój klucz pamięci podręcznej:

http://myaccount.apigee.net/mydata?param1=value1&param2=value2

Element <CacheKey> może zawierać te wartości za pomocą konfiguracji na przykład:

<CacheKey>
    <KeyFragment ref="request.queryparam.param1" />
    <KeyFragment ref="request.queryparam.param2" />
<CacheKey>

W czasie działania klucz pamięci podręcznej zawierałby połączone wartości parametrów, jak w :

other_key_parts__value1__value2

Pamiętaj, że jeśli używasz zmiennych do wstawiania wartości z parametrów, wartości będą połączone w kolejności sugerowanej przez kolejność elementów <KeyFragment>. Oprócz tego: Edge będzie używać tylko tych wartości, do których się odwołasz <KeyFragment> elementów. Jeśli listy parametrów zapytania są różne, parametr nie są uwzględniane w kluczu pamięci podręcznej.

Można też użyć zmiennej request.querystring, która wstawia cały ciąg jako część klucza pamięci podręcznej. Pamiętaj, że chociaż ta metoda uwzględnia wszystkich parametrów, jeśli kolejność parametrów jest różna w zależności od żądania, będzie inny. Innymi słowy, param1=value1&param2=value2 i param2=value2&param1=value1 nie dają takiej samej wartości klucza pamięci podręcznej.

Listę zmiennych, których możesz używać, znajdziesz w tym artykule.

Korzystanie z <zakresu> i <Prefix>

Elementy <Scope> i <Prefix> umożliwiają rozszerzysz klucz o prefiks przestrzeni nazw. Reprezentowane przez nie wartości są dodawane do pamięci podręcznej na początku .

Domyślnie używany jest element <Scope>. Jest to wyliczenie, którego wartości od szerokiego do wąskiego zakresu, przy czym wartość domyślna to najwęższa. Wartość domyślna jest używana do podasz inną wartość lub określisz wartość elementu <Prefix>. Dostępne opcje zastąp wartość <Scope> za pomocą elementu <Prefix>, więc określ niestandardową wartość przestrzeni nazw.

Na przykład wartość <Scope> „Cały świat” – najszerszym zakresie – reprezentuje nazwę organizacji i środowiska. Jeśli serwer proxy zostanie wdrożony w organizacji o nazwie „mojafirma” i środowisku o nazwie „prod”, uzyskana na początku wartość będzie wartością :

Konfiguracja Wynik
<Scope>Global</Scope> mycompany__prod__.

Jeśli używasz zakresu globalnego z zdefiniowanym powyżej kluczem pamięci podręcznej, wynik jest taki następujące:

Konfiguracja Wynik
<Scope>Global</Scope>
<CacheKey>
    <KeyFragment>hello</KeyFragment>
    <KeyFragment>world</KeyFragment>
<CacheKey>
mycompany__prod__hello__world.

Zgodnie z opisem w zasadach wyszukiwania pamięci podręcznej zakres może skonfigurować pod kątem zwiększenia szczegółowości z „Globalne” na „Tylko dostępność”. Zakres wyłączny jest najbardziej jest unikalny i dlatego stanowi minimalne ryzyko kolizji przestrzeni nazw w danej pamięci podręcznej. Każdy wpis w pamięci podręcznej z zakresem wyłącznym ma przedrostek w takiej postaci:

orgName__envName__apiProxyName__deployedRevisionNumber__proxy|TargetName__[serializedCacheKey]

Na przykład klucz pamięci podręcznej utworzony na podstawie wartości wykluczającej dla atrybutu <Scope> będzie wyglądać tak:

apifactory__test__weatherapi__16__default__apiAccessToken