Programování

Osvědčené postupy při ukládání do mezipaměti v ASP.Net

Ukládání do mezipaměti je strategie správy stavu, která se v ASP.Net často používá ke zlepšení výkonu aplikace minimalizací spotřeby zdrojů ve vašem systému. Pokud se použije správně, může výrazně zlepšit výkon vaší aplikace tím, že uloží stránku wWb v celém rozsahu nebo částečně, nebo dokonce uloží data aplikace přes požadavky HTTP. Ukládání do mezipaměti umožňuje rychlejší vykreslení webové stránky a správné použití ukládání do mezipaměti minimalizuje nebo snižuje zásahy do databáze nebo spotřebu prostředků serveru.

Ukládání do mezipaměti v ASP.Net má následující tři typy:

  1. ukládání do mezipaměti výstupu stránky
  2. ukládání fragmentů stránek do mezipaměti
  3. ukládání do mezipaměti dat

Ukládání do mezipaměti výstupu stránky

Toto je forma ukládání do mezipaměti v ASP.Net, která ukládá kopii vaší webové stránky do mezipaměti paměti, takže následné požadavky na stejnou webovou stránku lze načíst přímo z mezipaměti - výstup z mezipaměti je odeslán do aplikace. To výrazně zlepšuje výkon aplikace. Následující fragment kódu ukazuje, jak můžete implementovat ukládání výstupních stránek do mezipaměti.

Možnost VaryByParam vám pomůže určit proměnné v požadavku Http, které by potřebovaly novou položku mezipaměti. Mezi další možné možnosti patří: VaryByHeader a VaryByCustom. Můžete také zadat umístění a dobu trvání v direktivě OutputCache - pomocí nich můžete určit umístění mezipaměti a také dobu, po kterou by se měla webová stránka ukládat do mezipaměti.

Ukládání fragmentů stránek do mezipaměti

Ukládání fragmentů stránek do mezipaměti je strategie ukládání do mezipaměti, při které se webová stránka ukládá do mezipaměti částečně - do mezipaměti se ukládají pouze fragmenty webové stránky, nikoli celá webová stránka. Můžete použít stejnou syntaxi jako ukládání výstupních stránek do mezipaměti. Musíte však použít atribut OutputCache na uživatelský ovládací prvek namísto webové stránky. Ukládání fragmentů do mezipaměti je užitečné, když potřebujete ukládat do mezipaměti pouze části vaší webové stránky - obvykle v situacích, kdy vaše webová stránka obsahuje kombinaci běžných a dynamických sekcí. Jako příklad můžete mít webovou stránku, která obsahuje kombinaci položek nabídky a také určité dynamické sekce, které je třeba často vyplňovat a aktualizovat z databáze.

Ukládání dat do mezipaměti

ASP.Net zpřístupňuje Cache API pro ukládání dat do mezipaměti pro pozdější načtení. Syntaxe pro ukládání dat v mezipaměti pomocí rozhraní Cache API je uvedena níže.

Cache ["key"] = "hodnota";

Můžete také použít metody Přidat nebo Vložit. Chcete-li vzdálit položku z mezipaměti, můžete použít metodu Remove () třídy Cache. Metoda Insert () třídy Cache umožňuje určit závislost mezipaměti. Závislost na mezipaměti je strategie, která zajišťuje, že když se změní data v úložišti dat (ze kterého byla mezipaměť naplněna), mezipaměť by se poté okamžitě znovu naplnila. Když se data v úložišti dat změní, platnost mezipaměti vyprší, což má za následek opětovné naplnění mezipaměti nejnovějšími daty. Více si můžete přečíst v tomto článku MSDN.

Osvědčené postupy

Měli byste ukládat do mezipaměti tak často, jak jen můžete, a ukládat data do mezipaměti správně v každé vrstvě vaší aplikace. Při použití ukládání do mezipaměti dat byste měli implementovat správnou strategii, která zajistí synchronizaci dat v mezipaměti s daty v úložišti dat. Můžete využít výhod manažerů distribuované mezipaměti, jako je Memcached, aby se vaše strategie ukládání do mezipaměti mohla také dobře škálovat a poskytnout značné zvýšení výkonu - můžete Memcached použít k ukládání velkých dat. Měli byste se ujistit, že ukládáte pouze relativně zastaralá data do mezipaměti - nemá smysl ukládat data do mezipaměti, která by se časem často měnila. Také data, u nichž je nepravděpodobné, že budou znovu použita, by neměla být ukládána do mezipaměti. Neměli byste nadměrně používat SqlDependency nebo SqlCacheDependency.

A teď poznejme i nevýhody ukládání do mezipaměti. Objekt mezipaměti je k dispozici pouze pro aktuální doménu aplikace. Pokud tedy chcete ukládat data do mezipaměti a zpřístupnit je přes webovou farmu, není to možné. Budete muset využít distribuovanou mezipaměť, jako je Windows Server AppFabric Caching nebo jiné distribuované mezipaměti, abyste měli data v mezipaměti globálně přístupná ve webové farmě.

Ukládání do mezipaměti je výkonný mechanismus pro zvýšení výkonu aplikace ukládáním relativně zastaralých dat do paměti, aby bylo možné je později načíst z mezipaměti. Podrobněji o tomto tématu budu diskutovat s příklady kódu v reálném životě v mých budoucích příspěvcích zde.