Mezipaměti a Redis

Dokončeno

Je důležité, aby vaše aplikace rychle reagovaly na žádosti uživatelů. Když je web pomalý, návštěvníci se frustrují rychle a opustí váš web, možná navštívit své konkurenty. Jak můžete vytvořit aplikaci, která reaguje rychle, i když se vyžaduje složitá sada dat? Jedním ze způsobů, jak urychlit aplikaci, je použít mezipaměť.

Představte si, že pracujete pro prodejce venkovního vybavení. Vaše nová webová aplikace je ve vývoji a několik mikroslužeb se blíží k jejich prvnímu vydání, ale některé stránky se načítají příliš pomalu. Chcete najít způsob, jak zvýšit jejich výkon.

V této lekci se dozvíte, jak může ukládání do mezipaměti pomoct zvýšit rychlost webové aplikace.

Co je Redis?

Redis je opensourcové úložiště informací v paměti. Jeho název je zkratka pro Remote Dictionary Server. Možná nejdůležitější funkcí Redisu je nízká latence operací čtení i zápisu, které dosahuje na základě návrhu a skutečnosti, že obsahuje všechny informace v paměti. Redis zahrnuje funkce zprostředkovatele databází a zpráv, ale je široce rozpoznán jako systém ukládání do mezipaměti.

Jak mezipaměť zlepšuje výkon

Mezipaměti se dají použít ke zlepšení výkonu mnoha systémů, které vyžadují čas na vytvoření odpovědí pro uživatele. Představte si například web elektronického obchodování vytvořený z mikroslužeb. Když chce uživatel vědět, jaké položky jsou ve svém nákupním košíku, systém může:

  1. Přijměte požadavek v mikroslužbě webové aplikace.
  2. Voláním ověřovací mikroslužby zkontrolujte identitu uživatelů, pokud jsou přihlášení.
  3. Zavolejte mikroslužbu nákupního košíku a zjistěte, které položky a jaké množství jsou v košíku.
  4. Zavolejte mikroslužbu katalogu produktů, abyste získali úplné podrobnosti o jednotlivých produktech.
  5. Zavolejte mikroslužbu pro obrázky, abyste získali image bloby pro každý produkt.
  6. Zavolejte mikroslužbu pro pořizování zásob a zkontrolujte úrovně zásob.
  7. Zavolejte expediční mikroslužbu a vypočítejte náklady na dopravu pro polohu a předvolby uživatele.

Přesné kroky se můžou lišit v závislosti na návrhu a obchodních funkcích, ale vidíte, že proces může být složitý a zahrnuje mnoho samostatných mikroslužeb a backingových služeb. I když by každá mikroslužba měla být nakonfigurovaná a zdrojová tak, aby fungovala dobře, konstrukce odpovědi nutně nějakou dobu spotřebovává.

Teď si představte, že uživatel aktualizuje stránku. Místo rekonstruování celé odpovědi HTML úplně od začátku, pokud byla stránka nebo jeho části uloženy v mezipaměti, může být vrácena uživateli mnohem rychleji než původní požadavek. Tato rychlá odpověď pomáhá zajistit, aby webová aplikace byla pro uživatele responzivní a přívětivější.

Úvahy o mezipaměti

Pokud používáte ukládání do mezipaměti, klíčovým rozhodnutím při návrhu je, jak dlouho má být určitý obsah ukládán do mezipaměti. Pokud jste například v nákupním košíku po dobu hodiny ukladili dokončenou stránku košíku, během které se pravděpodobně umístí další objednávky, stránka uložená v mezipaměti někdy hlásí zastaralé úrovně zásob a uživatelé můžou čekat déle, než se čekalo na doručení. Pokud stránku uložíte do mezipaměti jenom jednu minutu, můžete mít větší jistotu, že úrovně zásob budou přesné, ale může se stát, že se výkon nijak nezlepší. Pokud tedy zvolíte, jak dlouho se mají informace ukládat do mezipaměti, zvažte:

  • Jak často se informace mění? Například úrovně zásob se můžou v hodině měnit vícekrát, ale nové produkty se můžou v katalogu objevit jenom každých několik měsíců.
  • Jak důležité je, aby uživatelé viděli informace o up-to-date? Například úrovně akcií můžou být zásadní, ale můžete zvážit, že nové recenze produktů jsou méně důležité.
  • Jak často budete pravděpodobně dostávat žádosti o informace? Ukládání oblíbených informací do mezipaměti přináší vyšší zvýšení výkonu, protože systém ho může obsluhovat z mezipaměti několikrát.

Použití Redis v projektech .NET Aspire

Redis je oblíbenou volbou pro ukládání do mezipaměti v nativní cloudové aplikaci. .NET Aspire poskytuje tři komponenty, které můžete použít k interakci se službou Redis:

  • komponenta .NET Aspire StackExchange Redis: Pomocí této komponenty můžete pracovat přímo se serverem Redis. Můžete ho například použít k ukládání a načítání hodnot v databázi Redis nebo k odběru zpráv odesílaných do kanálu. Vzhledem k tomu, že se tato komponenta nezaměřuje na ukládání do mezipaměti, nebudeme ji v tomto modulu dále zvažovat.
  • Komponenta pro ukládání výstupu do mezipaměti v rozhraní .NET Aspire StackExchange Redis: Tato komponenta slouží k ukládání kompletních odpovědí HTTP do mezipaměti.
  • .NET Aspire StackExchange Redis distribuovaná komponenta ukládání do mezipaměti: Tato součást ukládání do mezipaměti slouží k ukládání a načítání dat z distribuované mezipaměti. Distribuované ukládání do mezipaměti popisuje architekturu, ve které několik mikroslužeb nebo jiných klientských služeb sdílí jednu mezipaměť.

Víc se uč