Poznámka
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Poznámka:
Toto není nejnovější verze tohoto článku. Aktuální verzi tohoto článku najdete ve verzi .NET 9
Důležité
Tyto informace se týkají předběžného vydání produktu, který může být podstatně změněn před komerčním vydáním. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Aktuální verzi tohoto článku najdete ve verzi .NET 9
Autor: Rick Anderson a Tom Dykstra
Paměťová cache
Ukládání dat do mezipaměti v paměti používá paměť serveru k ukládání dat uložených v mezipaměti. Tento typ ukládání do mezipaměti je vhodný pro jeden server nebo více serverů používajících spřažení relací. Spřažení relací se také označuje jako rychlé relace. Vazba relace znamená, že požadavky od klienta se vždy směrují na stejný server ke zpracování.
Další informace najdete v tématu Ukládání do mezipaměti v paměti v ASP.NET Core a řešení potíží s vazbou relací brány Azure Application Gateway.
Distribuovaná mezipaměť
Použijte distribuovanou mezipaměť k ukládání dat, když je aplikace hostovaná v cloudové nebo serverové farmě. Mezipaměť se sdílí mezi servery, které zpracovávají požadavky. Klient může odeslat požadavek, který zpracovává jakýkoli server ve skupině, pokud jsou k dispozici data uložená v mezipaměti pro klienta. ASP.NET Core funguje s distribuovanými mezipaměťmi SQL Serveru, Redis a NCache .
Další informace naleznete v tématu Distribuované ukládání do mezipaměti v ASP.NET Core.
HybridCache
Rozhraní HybridCache API přemosťuje některé mezery v IDistributedCache API a IMemoryCache API.
HybridCache
je abstraktní třída s výchozí implementací, která zpracovává většinu aspektů ukládání do mezipaměti a načítání z mezipaměti.
Funkce
HybridCache
má následující funkce, které ostatní rozhraní API nemají:
Jednotné rozhraní API pro ukládání do mezipaměti v procesu i mimo proces.
HybridCache
je navržený tak, aby byl náhradou za stávající použitíIDistributedCache
aIMemoryCache
, a poskytuje jednoduché rozhraní API pro přidání nového kódu pro ukládání do mezipaměti. Pokud máIDistributedCache
aplikace implementaci,HybridCache
služba ji použije k ukládání do sekundární mezipaměti. Tato dvouúrovňová strategie ukládání do mezipaměti umožňujeHybridCache
zajistit rychlost mezipaměti v paměti a odolnost distribuované nebo trvalé mezipaměti.Ochrana proti tlačenici
K situaci zvané "cache stampede" dochází, když je zneplatněna často používaná položka mezipaměti a příliš mnoho požadavků se současně pokusí tuto položku znovu vyplnit.
HybridCache
kombinuje souběžné operace a zajišťuje, aby všechny požadavky na danou odpověď čekaly, až první požadavek naplní mezipaměť.Konfigurovatelná serializace
Serializace se konfiguruje jako součást registrace služby, přičemž podporu pro typově specifické a generalizované serializátory zajišťují metody
WithSerializer
aWithSerializerFactory
metodami zřetězenými z voláníAddHybridCache
. Ve výchozím nastavení služba zpracovávástring
abyte[]
interně a používáSystem.Text.Json
pro všechno ostatní. Lze ho nakonfigurovat pro jiné typy serializátorů, jako je protobuf nebo XML.
Pokud chcete zobrazit relativní jednoduchost HybridCache
rozhraní API, porovnejte kód, který ho používá k kódu, který používá IDistributedCache
. Tady je příklad, jak vypadá použití IDistributedCache
:
public class SomeService(IDistributedCache cache)
{
public async Task<SomeInformation> GetSomeInformationAsync
(string name, int id, CancellationToken token = default)
{
var key = $"someinfo:{name}:{id}"; // Unique key for this combination.
var bytes = await cache.GetAsync(key, token); // Try to get from cache.
SomeInformation info;
if (bytes is null)
{
// Cache miss; get the data from the real source.
info = await SomeExpensiveOperationAsync(name, id, token);
// Serialize and cache it.
bytes = SomeSerializer.Serialize(info);
await cache.SetAsync(key, bytes, token);
}
else
{
// Cache hit; deserialize it.
info = SomeSerializer.Deserialize<SomeInformation>(bytes);
}
return info;
}
// This is the work we're trying to cache.
private async Task<SomeInformation> SomeExpensiveOperationAsync(string name, int id,
CancellationToken token = default)
{ /* ... */ }
}
To je hodně práce, aby to bylo pokaždé správně, včetně věcí jako je serializování. A ve scénáři "chyba cache" můžete skončit s několika souběžnými vlákny, která všechna narazí na chybu cache, všechna načítají podkladová data, všechna je serializují a všechna odesílají tato data do cache.
Tady je ekvivalentní kód, který používá HybridCache
:
public class SomeService(HybridCache cache)
{
public async Task<SomeInformation> GetSomeInformationAsync
(string name, int id, CancellationToken token = default)
{
return await cache.GetOrCreateAsync(
$"someinfo:{name}:{id}", // Unique key for this entry.
async cancel => await SomeExpensiveOperationAsync(name, id, cancel),
token: token
);
}
}
Kód je jednodušší a knihovna poskytuje ochranu proti návalu uživatelů a další funkce, které IDistributedCache
neposkytuje.
Kompatibilita
Knihovna HybridCache
podporuje starší runtimy .NET, včetně .NET Framework 4.7.2 a .NET Standard 2.0.
Další materiály
Další informace naleznete v následujících zdrojích:
- Knihovna HybridCache v ASP.NET Core
-
návrh rozhraní API hybridní mezipaměti (
dotnet/aspnetcore
č. 54647) -
HybridCache
zdrojového kódu
Ukládání odpovědí do mezipaměti
Middleware pro ukládání odpovědí do mezipaměti:
- Umožňuje ukládání odpovědí serveru do mezipaměti podle HTTP hlaviček mezipaměti. Implementuje standardní sémantiku ukládání do mezipaměti HTTP. Mezipaměti založené na hlavičkách mezipaměti HTTP, jako jsou proxy servery.
- Aplikace uživatelského rozhraní, jako stránky Razor, obvykle nepřinášejí mnoho výhod, protože prohlížeče nastavují hlavičky požadavků, které zabraňují ukládání do mezipaměti. Ukládání výstupu do mezipaměti, které je k dispozici v .NET 7 nebo novějších, přináší výhody aplikací uživatelského rozhraní. Při ukládání výstupu do mezipaměti se konfigurace rozhodne, co se má ukládat do mezipaměti nezávisle na hlavičkách HTTP.
- Může být přínosné pro veřejné požadavky rozhraní GET nebo HEAD API od klientů, u kterých jsou splněny podmínky pro ukládání do mezipaměti .
Pokud chcete otestovat ukládání odpovědí do mezipaměti, použijte Fiddler nebo jiný nástroj, který může explicitně nastavit hlavičky požadavků. Pro testování ukládání do mezipaměti se explicitně upřednostňuje nastavení hlaviček. Další informace naleznete v tématu Poradce při potížích.
Další informace najdete v tématu Ukládání odpovědí do mezipaměti v ASP.NET Core.
Ukládání výstupu do mezipaměti
Middleware pro ukládání výstupu do mezipaměti umožňuje ukládání odpovědí HTTP do mezipaměti. Ukládání výstupu do mezipaměti se liší od ukládání odpovědí do mezipaměti následujícími způsoby:
Chování při ukládání do mezipaměti je možné konfigurovat na serveru.
Chování při ukládání odpovědí do mezipaměti je definováno hlavičkami HTTP. Když například navštívíte web s Chromem nebo Edgem, prohlížeč automaticky odešle
Cache-control: max-age=0
záhlaví. Tato hlavička efektivně zakáže ukládání odpovědí do mezipaměti, protože server dodržuje pokyny poskytované klientem. Pro každý požadavek se vrátí nová odpověď, i když má server novou odpověď uloženou v mezipaměti. Při ukládání výstupu do mezipaměti klient nepřepíše chování při ukládání do mezipaměti, které nakonfigurujete na serveru.Médium úložiště mezipaměti je rozšiřitelné.
Paměť se používá ve výchozím nastavení. Ukládání odpovědí do mezipaměti je omezené na paměť.
Vybrané položky mezipaměti můžete zneplatnit prostřednictvím kódu programu.
Závislost ukládání odpovědí do mezipaměti na hlavičkách HTTP neumožňuje mnoho možností zneplatnění položek mezipaměti.
Uzamčení prostředků snižuje riziko zátěže mezipaměti a náhlého masového přístupu.
K situaci zvané "cache stampede" dochází, když je zneplatněna často používaná položka mezipaměti a příliš mnoho požadavků se současně pokusí tuto položku znovu vyplnit. Thundering herd je podobný: příval požadavků na stejnou odpověď, která ještě není v položce mezipaměti. Uzamykání prostředků zajišťuje, že všechny požadavky na danou odpověď čekají, než první požadavek naplní mezipaměť. Ukládání odpovědí do mezipaměti nemá funkci zablokování prostředků.
Opětovné obnovení mezipaměti minimalizuje využití šířky pásma.
Obnovení mezipaměti znamená, že server může místo textu odpovědi uložené v mezipaměti vrátit stavový
304 Not Modified
kód HTTP. Tento stavový kód informuje klienta, že odpověď na požadavek se nezmění od toho, co bylo dříve přijato. Ukládání odpovědí do mezipaměti neuvádí opětovné obnovení mezipaměti.
Další informace najdete v tématu Ukládání middlewaru do mezipaměti výstupu v ASP.NET Core.
Pomocník značek mezipaměti
Pomocí pomocníka pro značky Cache můžete ukládat do mezipaměti obsah zobrazení MVC nebo Razor stránky. Pomocník pro ukládání značek do mezipaměti používá uchovávání dat v paměti.
Další informace najdete v tématu Pomocník značky mezipaměti v ASP.NET Core MVC.
Pomocník značky distribuované mezipaměti
Obsah můžete ukládat do mezipaměti ze zobrazení MVC nebo Razor stránky v distribuovaných cloudových scénářích nebo ve scénářích webové farmy pomocí pomocné rutiny značek distribuované mezipaměti. Pomocník značky distribuované mezipaměti používá k ukládání dat SQL Server, Redis nebo NCache .
Další informace viz Distributed Cache Tag Helper v ASP.NET Core.
Paměťová cache
Ukládání dat do mezipaměti v paměti používá paměť serveru k ukládání dat uložených v mezipaměti. Tento typ ukládání do mezipaměti je vhodný pro jeden server nebo více serverů používajících spřažení relací. Spřažení relací se také označuje jako rychlé relace. Vazba relace znamená, že požadavky od klienta se vždy směrují na stejný server ke zpracování.
Další informace najdete v tématu Ukládání do mezipaměti v paměti v ASP.NET Core a řešení potíží s vazbou relací brány Azure Application Gateway.
Distribuovaná mezipaměť
Použijte distribuovanou mezipaměť k ukládání dat, když je aplikace hostovaná v cloudové nebo serverové farmě. Mezipaměť se sdílí mezi servery, které zpracovávají požadavky. Klient může odeslat požadavek, který zpracovává jakýkoli server ve skupině, pokud jsou k dispozici data uložená v mezipaměti pro klienta. ASP.NET Core funguje s distribuovanými mezipaměťmi SQL Serveru, Redis a NCache .
Další informace naleznete v tématu Distribuované ukládání do mezipaměti v ASP.NET Core.
HybridCache
Rozhraní HybridCache API přemosťuje některé mezery v IDistributedCache API a IMemoryCache API.
HybridCache
je abstraktní třída s výchozí implementací, která zpracovává většinu aspektů ukládání do mezipaměti a načítání z mezipaměti.
Funkce
HybridCache
má následující funkce, které ostatní rozhraní API nemají:
Jednotné rozhraní API pro ukládání do mezipaměti v procesu i mimo proces.
HybridCache
je navržený tak, aby byl náhradou za stávající použitíIDistributedCache
aIMemoryCache
, a poskytuje jednoduché rozhraní API pro přidání nového kódu pro ukládání do mezipaměti. Pokud máIDistributedCache
aplikace implementaci,HybridCache
služba ji použije k ukládání do sekundární mezipaměti. Tato dvouúrovňová strategie ukládání do mezipaměti umožňujeHybridCache
zajistit rychlost mezipaměti v paměti a odolnost distribuované nebo trvalé mezipaměti.Ochrana proti tlačenici
K situaci zvané "cache stampede" dochází, když je zneplatněna často používaná položka mezipaměti a příliš mnoho požadavků se současně pokusí tuto položku znovu vyplnit.
HybridCache
kombinuje souběžné operace a zajišťuje, aby všechny požadavky na danou odpověď čekaly, až první požadavek naplní mezipaměť.Konfigurovatelná serializace
Serializace se konfiguruje jako součást registrace služby, přičemž podporu pro typově specifické a generalizované serializátory zajišťují metody
WithSerializer
aWithSerializerFactory
metodami zřetězenými z voláníAddHybridCache
. Ve výchozím nastavení služba zpracovávástring
abyte[]
interně a používáSystem.Text.Json
pro všechno ostatní. Lze ho nakonfigurovat pro jiné typy serializátorů, jako je protobuf nebo XML.
Pokud chcete zobrazit relativní jednoduchost HybridCache
rozhraní API, porovnejte kód, který ho používá k kódu, který používá IDistributedCache
. Tady je příklad, jak vypadá použití IDistributedCache
:
public class SomeService(IDistributedCache cache)
{
public async Task<SomeInformation> GetSomeInformationAsync
(string name, int id, CancellationToken token = default)
{
var key = $"someinfo:{name}:{id}"; // Unique key for this combination.
var bytes = await cache.GetAsync(key, token); // Try to get from cache.
SomeInformation info;
if (bytes is null)
{
// Cache miss; get the data from the real source.
info = await SomeExpensiveOperationAsync(name, id, token);
// Serialize and cache it.
bytes = SomeSerializer.Serialize(info);
await cache.SetAsync(key, bytes, token);
}
else
{
// Cache hit; deserialize it.
info = SomeSerializer.Deserialize<SomeInformation>(bytes);
}
return info;
}
// This is the work we're trying to cache.
private async Task<SomeInformation> SomeExpensiveOperationAsync(string name, int id,
CancellationToken token = default)
{ /* ... */ }
}
To je hodně práce, aby to bylo pokaždé správně, včetně věcí jako je serializování. A ve scénáři "chyba cache" můžete skončit s několika souběžnými vlákny, která všechna narazí na chybu cache, všechna načítají podkladová data, všechna je serializují a všechna odesílají tato data do cache.
Tady je ekvivalentní kód, který používá HybridCache
:
public class SomeService(HybridCache cache)
{
public async Task<SomeInformation> GetSomeInformationAsync
(string name, int id, CancellationToken token = default)
{
return await cache.GetOrCreateAsync(
$"someinfo:{name}:{id}", // Unique key for this entry.
async cancel => await SomeExpensiveOperationAsync(name, id, cancel),
token: token
);
}
}
Kód je jednodušší a knihovna poskytuje ochranu proti návalu uživatelů a další funkce, které IDistributedCache
neposkytuje.
Kompatibilita
Knihovna HybridCache
podporuje starší runtimy .NET, včetně .NET Framework 4.7.2 a .NET Standard 2.0.
Další materiály
Další informace naleznete v následujících zdrojích:
- Knihovna HybridCache v ASP.NET Core
-
návrh rozhraní API hybridní mezipaměti (
dotnet/aspnetcore
č. 54647) -
HybridCache
zdrojového kódu
Pomocník značek mezipaměti
Pomocí pomocníka pro značky Cache můžete ukládat do mezipaměti obsah zobrazení MVC nebo Razor stránky. Pomocník pro ukládání značek do mezipaměti používá uchovávání dat v paměti.
Další informace najdete v tématu Pomocník značky mezipaměti v ASP.NET Core MVC.
Pomocník značky distribuované mezipaměti
Obsah můžete ukládat do mezipaměti ze zobrazení MVC nebo Razor stránky v distribuovaných cloudových scénářích nebo ve scénářích webové farmy pomocí pomocné rutiny značek distribuované mezipaměti. Pomocník značky distribuované mezipaměti používá k ukládání dat SQL Server, Redis nebo NCache .
Další informace viz Distributed Cache Tag Helper v ASP.NET Core.
Ukládání odpovědí do mezipaměti
Middleware pro ukládání odpovědí do mezipaměti:
- Umožňuje ukládání odpovědí serveru do mezipaměti podle HTTP hlaviček mezipaměti. Implementuje standardní sémantiku ukládání do mezipaměti HTTP. Mezipaměti založené na hlavičkách mezipaměti HTTP, jako jsou proxy servery.
- Aplikace uživatelského rozhraní, jako stránky Razor, obvykle nepřinášejí mnoho výhod, protože prohlížeče nastavují hlavičky požadavků, které zabraňují ukládání do mezipaměti. Ukládání výstupu do mezipaměti, které je k dispozici v .NET 7 nebo novějších, přináší výhody aplikací uživatelského rozhraní. Při ukládání výstupu do mezipaměti se konfigurace rozhodne, co se má ukládat do mezipaměti nezávisle na hlavičkách HTTP.
- Může být přínosné pro veřejné požadavky rozhraní GET nebo HEAD API od klientů, u kterých jsou splněny podmínky pro ukládání do mezipaměti .
Pokud chcete otestovat ukládání odpovědí do mezipaměti, použijte Fiddler nebo jiný nástroj, který může explicitně nastavit hlavičky požadavků. Pro testování ukládání do mezipaměti se explicitně upřednostňuje nastavení hlaviček. Další informace naleznete v tématu Poradce při potížích.
Ukládání výstupu do mezipaměti
Middleware pro ukládání výstupu do mezipaměti umožňuje ukládání odpovědí HTTP do mezipaměti. Ukládání výstupu do mezipaměti se liší od ukládání odpovědí do mezipaměti následujícími způsoby:
Chování při ukládání do mezipaměti je možné konfigurovat na serveru.
Chování při ukládání odpovědí do mezipaměti je definováno hlavičkami HTTP. Když například navštívíte web s Chromem nebo Edgem, prohlížeč automaticky odešle
Cache-control: max-age=0
záhlaví. Tato hlavička efektivně zakáže ukládání odpovědí do mezipaměti, protože server dodržuje pokyny poskytované klientem. Pro každý požadavek se vrátí nová odpověď, i když má server novou odpověď uloženou v mezipaměti. Při ukládání výstupu do mezipaměti klient nepřepíše chování při ukládání do mezipaměti, které nakonfigurujete na serveru.Médium úložiště mezipaměti je rozšiřitelné.
Paměť se používá ve výchozím nastavení. Ukládání odpovědí do mezipaměti je omezené na paměť.
Vybrané položky mezipaměti můžete zneplatnit prostřednictvím kódu programu.
Závislost ukládání odpovědí do mezipaměti na hlavičkách HTTP neumožňuje mnoho možností zneplatnění položek mezipaměti.
Uzamčení prostředků snižuje riziko zátěže mezipaměti a náhlého masového přístupu.
K situaci zvané "cache stampede" dochází, když je zneplatněna často používaná položka mezipaměti a příliš mnoho požadavků se současně pokusí tuto položku znovu vyplnit. Thundering herd je podobný: příval požadavků na stejnou odpověď, která ještě není v položce mezipaměti. Uzamykání prostředků zajišťuje, že všechny požadavky na danou odpověď čekají, než první požadavek naplní mezipaměť. Ukládání odpovědí do mezipaměti nemá funkci zablokování prostředků.
Opětovné obnovení mezipaměti minimalizuje využití šířky pásma.
Obnovení mezipaměti znamená, že server může místo textu odpovědi uložené v mezipaměti vrátit stavový
304 Not Modified
kód HTTP. Tento stavový kód informuje klienta, že odpověď na požadavek se nezmění od toho, co bylo dříve přijato. Ukládání odpovědí do mezipaměti neuvádí opětovné obnovení mezipaměti.
Paměťová cache
Ukládání dat do mezipaměti v paměti používá paměť serveru k ukládání dat uložených v mezipaměti. Tento typ ukládání do mezipaměti je vhodný pro jeden server nebo více serverů používajících spřažení relací. Spřažení relací se také označuje jako rychlé relace. Vazba relace znamená, že požadavky od klienta se vždy směrují na stejný server ke zpracování.
Další informace najdete v tématu Ukládání do mezipaměti v paměti v ASP.NET Core a řešení potíží s vazbou relací brány Azure Application Gateway.
Distribuovaná mezipaměť
Použijte distribuovanou mezipaměť k ukládání dat, když je aplikace hostovaná v cloudové nebo serverové farmě. Mezipaměť se sdílí mezi servery, které zpracovávají požadavky. Klient může odeslat požadavek, který zpracovává jakýkoli server ve skupině, pokud jsou k dispozici data uložená v mezipaměti pro klienta. ASP.NET Core funguje s distribuovanými mezipaměťmi SQL Serveru, Redis a NCache .
Další informace naleznete v tématu Distribuované ukládání do mezipaměti v ASP.NET Core.
HybridCache
Rozhraní HybridCache API přemosťuje některé mezery v IDistributedCache API a IMemoryCache API.
HybridCache
je abstraktní třída s výchozí implementací, která zpracovává většinu aspektů ukládání do mezipaměti a načítání z mezipaměti.
Funkce
HybridCache
má následující funkce, které ostatní rozhraní API nemají:
Jednotné rozhraní API pro ukládání do mezipaměti v procesu i mimo proces.
HybridCache
je navržený tak, aby byl náhradou za stávající použitíIDistributedCache
aIMemoryCache
, a poskytuje jednoduché rozhraní API pro přidání nového kódu pro ukládání do mezipaměti. Pokud máIDistributedCache
aplikace implementaci,HybridCache
služba ji použije k ukládání do sekundární mezipaměti. Tato dvouúrovňová strategie ukládání do mezipaměti umožňujeHybridCache
zajistit rychlost mezipaměti v paměti a odolnost distribuované nebo trvalé mezipaměti.Ochrana proti tlačenici
K situaci zvané "cache stampede" dochází, když je zneplatněna často používaná položka mezipaměti a příliš mnoho požadavků se současně pokusí tuto položku znovu vyplnit.
HybridCache
kombinuje souběžné operace a zajišťuje, aby všechny požadavky na danou odpověď čekaly, až první požadavek naplní mezipaměť.Konfigurovatelná serializace
Serializace se konfiguruje jako součást registrace služby, přičemž podporu pro typově specifické a generalizované serializátory zajišťují metody
WithSerializer
aWithSerializerFactory
metodami zřetězenými z voláníAddHybridCache
. Ve výchozím nastavení služba zpracovávástring
abyte[]
interně a používáSystem.Text.Json
pro všechno ostatní. Lze ho nakonfigurovat pro jiné typy serializátorů, jako je protobuf nebo XML.
Pokud chcete zobrazit relativní jednoduchost HybridCache
rozhraní API, porovnejte kód, který ho používá k kódu, který používá IDistributedCache
. Tady je příklad, jak vypadá použití IDistributedCache
:
public class SomeService(IDistributedCache cache)
{
public async Task<SomeInformation> GetSomeInformationAsync
(string name, int id, CancellationToken token = default)
{
var key = $"someinfo:{name}:{id}"; // Unique key for this combination.
var bytes = await cache.GetAsync(key, token); // Try to get from cache.
SomeInformation info;
if (bytes is null)
{
// Cache miss; get the data from the real source.
info = await SomeExpensiveOperationAsync(name, id, token);
// Serialize and cache it.
bytes = SomeSerializer.Serialize(info);
await cache.SetAsync(key, bytes, token);
}
else
{
// Cache hit; deserialize it.
info = SomeSerializer.Deserialize<SomeInformation>(bytes);
}
return info;
}
// This is the work we're trying to cache.
private async Task<SomeInformation> SomeExpensiveOperationAsync(string name, int id,
CancellationToken token = default)
{ /* ... */ }
}
To je hodně práce, aby to bylo pokaždé správně, včetně věcí jako je serializování. A ve scénáři "chyba cache" můžete skončit s několika souběžnými vlákny, která všechna narazí na chybu cache, všechna načítají podkladová data, všechna je serializují a všechna odesílají tato data do cache.
Tady je ekvivalentní kód, který používá HybridCache
:
public class SomeService(HybridCache cache)
{
public async Task<SomeInformation> GetSomeInformationAsync
(string name, int id, CancellationToken token = default)
{
return await cache.GetOrCreateAsync(
$"someinfo:{name}:{id}", // Unique key for this entry.
async cancel => await SomeExpensiveOperationAsync(name, id, cancel),
token: token
);
}
}
Kód je jednodušší a knihovna poskytuje ochranu proti návalu uživatelů a další funkce, které IDistributedCache
neposkytuje.
Kompatibilita
Knihovna HybridCache
podporuje starší runtimy .NET, včetně .NET Framework 4.7.2 a .NET Standard 2.0.
Další materiály
Další informace naleznete v následujících zdrojích:
- Knihovna HybridCache v ASP.NET Core
-
návrh rozhraní API hybridní mezipaměti (
dotnet/aspnetcore
č. 54647) -
HybridCache
zdrojového kódu
Pomocník značek mezipaměti
Pomocí pomocníka pro značky Cache můžete ukládat do mezipaměti obsah zobrazení MVC nebo Razor stránky. Pomocník pro ukládání značek do mezipaměti používá uchovávání dat v paměti.
Další informace najdete v tématu Pomocník značky mezipaměti v ASP.NET Core MVC.
Pomocník značky distribuované mezipaměti
Obsah můžete ukládat do mezipaměti ze zobrazení MVC nebo Razor stránky v distribuovaných cloudových scénářích nebo ve scénářích webové farmy pomocí pomocné rutiny značek distribuované mezipaměti. Pomocník značky distribuované mezipaměti používá k ukládání dat SQL Server, Redis nebo NCache .
Další informace viz Distributed Cache Tag Helper v ASP.NET Core.
Ukládání odpovědí do mezipaměti
Middleware pro ukládání odpovědí do mezipaměti:
- Umožňuje ukládání odpovědí serveru do mezipaměti podle HTTP hlaviček mezipaměti. Implementuje standardní sémantiku ukládání do mezipaměti HTTP. Mezipaměti založené na hlavičkách mezipaměti HTTP, jako jsou proxy servery.
- Aplikace uživatelského rozhraní, jako stránky Razor, obvykle nepřinášejí mnoho výhod, protože prohlížeče nastavují hlavičky požadavků, které zabraňují ukládání do mezipaměti. Ukládání výstupu do mezipaměti, které je k dispozici v .NET 7 nebo novějších, přináší výhody aplikací uživatelského rozhraní. Při ukládání výstupu do mezipaměti se konfigurace rozhodne, co se má ukládat do mezipaměti nezávisle na hlavičkách HTTP.
- Může být přínosné pro veřejné požadavky rozhraní GET nebo HEAD API od klientů, u kterých jsou splněny podmínky pro ukládání do mezipaměti .
Pokud chcete otestovat ukládání odpovědí do mezipaměti, použijte Fiddler nebo jiný nástroj, který může explicitně nastavit hlavičky požadavků. Pro testování ukládání do mezipaměti se explicitně upřednostňuje nastavení hlaviček. Další informace naleznete v tématu Poradce při potížích.
Ukládání výstupu do mezipaměti
Ukládání výstupu do mezipaměti je k dispozici v .NET 7 nebo novějším.