Programovanie

Najlepšie postupy pri ukladaní do pamäte cache v ASP.Net

Ukladanie do vyrovnávacej pamäte je stratégia riadenia stavu, ktorá sa často používa v ASP.Net na zlepšenie výkonu aplikácie minimalizáciou spotreby zdrojov vo vašom systéme. Ak sa použije správne, môže výrazne zvýšiť výkonnosť vašej aplikácie uložením stránky wWb ako celku alebo čiastočne alebo dokonca uložiť údaje aplikácie v rámci požiadaviek HTTP. Ukladanie do pamäte cache umožňuje rýchlejšie vykreslenie webovej stránky a správne používanie ukladania do pamäte cache minimalizuje alebo znižuje zásahy do databázy alebo spotrebu zdrojov servera.

Ukladanie do pamäte cache v ASP.Net má tieto tri typy:

  1. ukladanie stránok do pamäte cache
  2. medzipamäť fragmentu stránky
  3. ukladanie údajov do pamäte cache

Ukladanie stránky do pamäte cache

Toto je forma ukladania do pamäte cache v ASP.Net, ktorá ukladá kópiu vašej webovej stránky do medzipamäte pamäte, aby bolo možné následné žiadosti o rovnakú webovú stránku načítať priamo z medzipamäte - výstup z medzipamäte sa odošle do aplikácie. Toto výrazne zvyšuje výkon aplikácie. Nasledujúci útržok kódu ukazuje, ako môžete implementovať ukladanie do vyrovnávacej pamäte na výstupe zo stránok.

Možnosť VaryByParam vám pomôže určiť premenné v požiadavke Http, ktoré by vyžadovali nový záznam v pamäti cache. Medzi ďalšie možné možnosti patria: VaryByHeader a VaryByCustom. Môžete tiež určiť umiestnenie a trvanie v smernici OutputCache - pomocou nich môžete určiť umiestnenie vyrovnávacej pamäte a tiež dobu, po ktorú by sa mala webová stránka ukladať do medzipamäte.

Ukladanie do fragmentov stránok

Ukladanie do fragmentov stránok je stratégia ukladania do pamäte cache, pri ktorej sa webová stránka ukladá do medzipamäte čiastočne - do medzipamäte sa ukladajú iba fragmenty webovej stránky, nie celá webová stránka. Môžete použiť rovnakú syntax ako s ukladaním do pamäte cache na výstup na stránku. Musíte však použiť atribút OutputCache na ovládací prvok používateľa namiesto na webovú stránku. Fragment caching je užitočné, keď potrebujete uložiť do medzipamäte iba časti svojej webovej stránky - zvyčajne v situáciách, keď vaša webová stránka obsahuje kombináciu bežných a dynamických častí. Ako príklad môžete mať webovú stránku, ktorá obsahuje kombináciu položiek ponuky a tiež určité dynamické sekcie, ktoré je potrebné často vyplňovať a aktualizovať z databázy.

Ukladanie údajov do pamäte cache

ASP.Net sprístupňuje rozhranie Cache API, aby ste mohli ukladať údaje do medzipamäte na neskoršie načítanie. Syntax pre ukladanie údajov do medzipamäte pomocou rozhrania Cache API je uvedená nižšie.

Vyrovnávacia pamäť ["key"] = "hodnota";

Môžete tiež použiť metódy Pridať alebo Vložiť. Na vzdialený vstup z medzipamäte môžete použiť metódu Remove () triedy Cache. Metóda Insert () triedy Cache vám umožňuje určiť závislosť cache. Závislosť na medzipamäti je stratégia, ktorá zaisťuje, že pri zmene údajov v dátovom úložisku (z ktorého bola vyplnená vyrovnávacia pamäť) sa potom okamžite znova naplní vyrovnávacia pamäť. Keď sa údaje v dátovom úložisku zmenia, medzipamäť by skončila, čo by malo za následok opätovné vyplnenie medzipamäte najnovšími údajmi. Viac sa o tom dočítate z tohto článku na webe MSDN.

Osvedčené postupy

Mali by ste ukladať do vyrovnávacej pamäte tak často, ako je to možné, a ukladať údaje do medzipamäte správne v každej vrstve svojej aplikácie. Pri používaní ukladania údajov do pamäte cache by ste mali implementovať správnu stratégiu, ktorá zabezpečí synchronizáciu údajov v pamäti cache s údajmi v úložisku údajov. Môžete využiť výhody manažérov distribuovanej pamäte cache, ako je Memcached, aby sa vaša stratégia ukladania do pamäte cache mohla tiež dobre škálovať a zabezpečiť značné zvýšenie výkonu - Memcached môžete použiť na ukladanie veľkých údajov. Mali by ste sa ubezpečiť, že ukladáte do pamäte iba relatívne zastarané údaje - nemá zmysel ukladať údaje do medzipamäte, ktoré by sa časom mohli často meniť. Do medzipamäte by sa nemali ukladať ani údaje, ktoré pravdepodobne nebudú znovu použité. Nemali by ste nadmerne používať SqlDependency alebo SqlCacheDependency.

A teraz poznáme aj nevýhody ukladania do medzipamäte. Objekt medzipamäte je k dispozícii iba pre aktuálnu doménu aplikácie. Ak by ste teda chceli ukladať údaje do vyrovnávacej pamäte a sprístupniť ich prostredníctvom webovej farmy, nie je to možné. Ak chcete, aby boli údaje v medzipamäti globálne prístupné vo webovej farme, musíte využiť distribuovanú medzipamäť ako Windows Server AppFabric Caching alebo iné rámce distribuovaného ukladania do medzipamäte.

Ukladanie do pamäte cache je mocný mechanizmus na zvýšenie výkonu aplikácie ukladaním relatívne zastaraných údajov do pamäte, aby bolo možné tieto neskôr v pamäti cache načítať. Viac sa budem venovať tejto téme a ukážkami kódov z reálneho života v mojich budúcich príspevkoch tu.

$config[zx-auto] not found$config[zx-overlay] not found