Rychlý start: Použití Azure Cache for Redis s aplikací .NET

V tomto rychlém startu zahrnete Azure Cache for Redis do aplikace .NET pro přístup k zabezpečené vyhrazené mezipaměti, která je přístupná z libovolné aplikace v Azure. Konkrétně používáte klienta StackExchange.Redis s kódem jazyka C# v konzolové aplikaci .NET.

Přeskočit na kód na GitHubu

Tento článek popisuje, jak upravit kód ukázkové aplikace a vytvořit funkční aplikaci, která se připojuje ke službě Azure Cache for Redis.

Pokud chcete přejít přímo na kód, podívejte se na ukázku rychlého startu .NET na GitHubu.

Požadavky

Vytvoření mezipaměti

  1. Pokud chcete vytvořit mezipaměť, přihlaste se k webu Azure Portal. V nabídce portálu vyberte Vytvořit prostředek.

    Sceenshot zobrazte zvýrazněnou možnost Vytvořit prostředek v levém navigačním podokně na webu Azure Portal.

  2. V podokně Začínáme zadejte azure Cache for Redis na panelu hledání. Ve výsledcích hledání vyhledejte Azure Cache for Redis a pak vyberte Vytvořit.

    Snímek obrazovky znázorňující Azure Marketplace se službou Azure Cache for Redis ve vyhledávacím poli a zvýrazněným tlačítkem Vytvořit

  3. V podokně New Redis Cache na kartě Základy nakonfigurujte pro mezipaměť následující nastavení:

    Nastavení Akce Popis
    Předplatné Vyberte své předplatné Azure. Předplatné, které se má použít k vytvoření nové instance Azure Cache for Redis.
    Skupina prostředků Vyberte skupinu prostředků nebo vyberte Vytvořit novou a zadejte název nové skupiny prostředků. Název skupiny prostředků, ve které chcete vytvořit mezipaměť a další prostředky. Když umístíte všechny prostředky aplikace do jedné skupiny prostředků, můžete je snadno spravovat nebo odstraňovat společně.
    Název DNS Zadejte jedinečný název. Název mezipaměti musí být řetězec 1 až 63 znaků, který obsahuje jenom číslice, písmena a pomlčky. Název musí začínat a končit číslem nebo písmenem a nesmí obsahovat po sobě jdoucí pomlčky. Název hostitele vaší instance mezipaměti je \<DNS name>.redis.cache.windows.net.
    Místo Vyberte umístění. Oblast Azure, která je blízko jiných služeb, které používají vaši mezipaměť.
    Skladová položka mezipaměti Vyberte skladovou položku. Skladová položka určuje velikost, výkon a parametry funkcí, které jsou k dispozici pro mezipaměť. Další informace najdete v přehledu služby Azure Cache for Redis.
    Velikost mezipaměti Vyberte velikost mezipaměti. Další informace najdete v přehledu služby Azure Cache for Redis.
  4. Vyberte kartu Sítě nebo vyberte Další: Sítě.

  5. Na kartě Sítě vyberte metodu připojení, která se má použít pro mezipaměť.

  6. Vyberte kartu Upřesnit nebo vyberte Další: Upřesnit.

  7. V podokně Upřesnit ověřte nebo vyberte metodu ověřování na základě následujících informací:

    Snímek obrazovky s podoknem Upřesnit a dostupnými možnostmi, které můžete vybrat

    • Ve výchozím nastavení je pro novou mezipaměť Basic, Standard nebo Premium povolená služba Microsoft Entra Authentication a ověřování přístupových klíčů je zakázané.
    • U mezipamětí Basic nebo Standard můžete zvolit výběr pro port jiného typu než TLS.
    • U mezipamětí Standard a Premium můžete povolit zóny dostupnosti. Po vytvoření mezipaměti nemůžete zakázat zóny dostupnosti.
    • Pro mezipaměť Premium nakonfigurujte nastavení pro port bez protokolu TLS, clustering, spravovanou identitu a trvalost dat.

    Důležité

    Pro zajištění optimálního zabezpečení doporučujeme použít ID Microsoft Entra se spravovanými identitami k autorizaci požadavků v mezipaměti, pokud je to možné. Autorizace pomocí Microsoft Entra ID a spravovaných identit poskytuje vynikající zabezpečení a snadné použití prostřednictvím autorizace sdíleného přístupového klíče. Další informace o používání spravovaných identit s mezipamětí naleznete v tématu Použití MICROSOFT Entra ID pro ověřování mezipaměti.

  8. (Volitelné) Vyberte kartu Značky nebo vyberte Další: Značky.

  9. (Volitelné) Na kartě Značky zadejte název a hodnotu značky , pokud chcete zařadit prostředek mezipaměti do kategorií.

  10. Vyberte tlačítko Zkontrolovat a vytvořit.

    Na kartě Zkontrolovat a vytvořit Azure vaši konfiguraci automaticky ověří.

  11. Jakmile se zobrazí zelená zpráva o úspěšném ověření, vyberte Vytvořit.

Během několika minut dojde k novému nasazení mezipaměti. Průběh nasazení můžete monitorovat v podokně Přehled služby Azure Cache for Redis. Když se zobrazí stav Spuštěno, je mezipaměť připravená k použití.

Získání názvu hostitele, portů a přístupového klíče

Aby se klient mezipaměti připojil k serveru Azure Cache for Redis, potřebuje název hostitele, porty a přístupový klíč mezipaměti. Někteří klienti můžou na tyto položky odkazovat pomocí mírně odlišných názvů. Název hostitele, porty a klíče můžete získat na webu Azure Portal.

  • Získání přístupového klíče pro mezipaměť:

    1. Na webu Azure Portal přejděte do mezipaměti.
    2. V nabídce služby v části Nastavení vyberte Ověřování.
    3. V podokně Ověřování vyberte kartu Přístupové klávesy.
    4. Pokud chcete zkopírovat hodnotu přístupového klíče, vyberte v poli klíč ikonu Kopírovat .

    Snímek obrazovky, který ukazuje, jak najít a zkopírovat přístupový klíč pro instanci Azure Cache for Redis

  • Získání názvu hostitele a portů pro mezipaměť:

    1. Na webu Azure Portal přejděte do mezipaměti.
    2. V nabídce služby vyberte Přehled.
    3. V části Základy vyberte u názvu hostitele ikonu Kopírovat a zkopírujte hodnotu názvu hostitele. Hodnota názvu hostitele má formulář <DNS name>.redis.cache.windows.net.
    4. U portů vyberte ikonu Kopírovat a zkopírujte hodnoty portu.

    Snímek obrazovky, který ukazuje, jak najít a zkopírovat název hostitele a porty pro instanci Azure Cache for Redis

  1. Vytvořte v počítači soubor s názvem CacheSecrets.config. Umístěte ho do složky *C:\AppSecrets*.

  2. Upravte soubor TajnéKódyMezipaměti.config a přidejte do něj následující obsah:

    <appSettings>
        <add key="CacheConnection" value="<host-name>,abortConnect=false,ssl=true,allowAdmin=true,password=<access-key>"/>
    </appSettings>
    
    • <host-name> nahraďte názvem hostitele mezipaměti.

    • <access-key> nahraďte primárním klíčem mezipaměti.

  3. Uložte soubor.

Konfigurace klienta mezipaměti

V této části připravíte konzolovou aplikaci na použití klienta StackExchange.Redis pro .NET.

  1. V aplikaci Visual Studio zvolte Nástroje>Správce balíčků NuGet>Konzola Správce balíčků. V okně konzoly Správce balíčků spusťte následující příkaz:

    Install-Package StackExchange.Redis
    
  2. Po dokončení instalace je klient mezipaměti StackExchange.Redis k dispozici pro použití s vaším projektem.

Připojení k mezipaměti tajných kódů

V sadě Visual Studio otevřete soubor App.config a ověřte, že obsahuje appSettings file atribut, který odkazuje na soubor CacheSecrets.config:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <startup> 
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.2" />
    </startup>

    <appSettings file="C:\AppSecrets\CacheSecrets.config"></appSettings>
</configuration>

Nikdy neukládejte přihlašovací údaje do zdrojového kódu. Pro zjednodušení této ukázky používáme konfigurační soubor externích tajných kódů. Lepším přístupem může být použití řešení Azure Key Vault s certifikáty.

Připojení k mezipaměti pomocí RedisConnection

Připojení k mezipaměti spravuje RedisConnection třída. Nejprve proveďte připojení v tomto příkazu v Program.cs:

     _redisConnection = await RedisConnection.InitializeAsync(connectionString: ConfigurationManager.AppSettings["CacheConnection"].ToString());


Hodnota nastavení aplikace CacheConnection se používá k odkazování na mezipaměť připojovací řetězec z webu Azure Portal jako parametr hesla.

V RedisConnection.cs se obor názvů StackExchange.Redis zobrazí jako using příkaz, který RedisConnection třída vyžaduje:

using StackExchange.Redis;

RedisConnection Kód třídy zajišťuje, že je k mezipaměti vždy v pořádku připojení. Připojení spravuje ConnectionMultiplexer instance z StackExchange.Redis. Třída RedisConnection znovu vytvoří připojení, když dojde ke ztrátě připojení a nemůže se znovu připojit automaticky.

Další informace najdete v tématu StackExchange.Redis a kód v úložišti StackExchange.Redis GitHub.

Spouštění příkazů mezipaměti

V Program.cs uvidíte následující kód RunRedisCommandsAsync metody ve Program třídě konzolové aplikace:

private static async Task RunRedisCommandsAsync(string prefix)
    {
        // Simple PING command
        Console.WriteLine($"{Environment.NewLine}{prefix}: Cache command: PING");
        RedisResult pingResult = await _redisConnection.BasicRetryAsync(async (db) => await db.ExecuteAsync("PING"));
        Console.WriteLine($"{prefix}: Cache response: {pingResult}");

        // Simple get and put of integral data types into the cache
        string key = "Message";
        string value = "Hello! The cache is working from a .NET console app!";

        Console.WriteLine($"{Environment.NewLine}{prefix}: Cache command: GET {key} via StringGetAsync()");
        RedisValue getMessageResult = await _redisConnection.BasicRetryAsync(async (db) => await db.StringGetAsync(key));
        Console.WriteLine($"{prefix}: Cache response: {getMessageResult}");

        Console.WriteLine($"{Environment.NewLine}{prefix}: Cache command: SET {key} \"{value}\" via StringSetAsync()");
        bool stringSetResult = await _redisConnection.BasicRetryAsync(async (db) => await db.StringSetAsync(key, value));
        Console.WriteLine($"{prefix}: Cache response: {stringSetResult}");

        Console.WriteLine($"{Environment.NewLine}{prefix}: Cache command: GET {key} via StringGetAsync()");
        getMessageResult = await _redisConnection.BasicRetryAsync(async (db) => await db.StringGetAsync(key));
        Console.WriteLine($"{prefix}: Cache response: {getMessageResult}");

        // Store serialized object to cache
        Employee e007 = new Employee("007", "Davide Columbo", 100);
        stringSetResult = await _redisConnection.BasicRetryAsync(async (db) => await db.StringSetAsync("e007", JsonSerializer.Serialize(e007)));
        Console.WriteLine($"{Environment.NewLine}{prefix}: Cache response from storing serialized Employee object: {stringSetResult}");

        // Retrieve serialized object from cache
        getMessageResult = await _redisConnection.BasicRetryAsync(async (db) => await db.StringGetAsync("e007"));
        Employee e007FromCache = JsonSerializer.Deserialize<Employee>(getMessageResult);
        Console.WriteLine($"{prefix}: Deserialized Employee .NET object:{Environment.NewLine}");
        Console.WriteLine($"{prefix}: Employee.Name : {e007FromCache.Name}");
        Console.WriteLine($"{prefix}: Employee.Id   : {e007FromCache.Id}");
        Console.WriteLine($"{prefix}: Employee.Age  : {e007FromCache.Age}{Environment.NewLine}");
    }


Položky v mezipaměti lze ukládat a načítat pomocí metod StringSetAsync a StringGetAsync.

V tomto příkladu vidíte, že Message klíč je nastavený na hodnotu. Aplikace tuto hodnotu z mezipaměti aktualizovala. Aplikace také spustila PING příkaz a příkaz.

Práce s objekty .NET v mezipaměti

Server Redis ukládá většinu dat jako řetězce, ale tyto řetězce mohou obsahovat mnoho typů dat, včetně serializovaných binárních dat, které lze použít při ukládání objektů .NET do mezipaměti.

Azure Cache for Redis může ukládat objekty .NET i primitivní datové typy do mezipaměti, ale před uložením objektu .NET do mezipaměti musí být serializován.

Za serializaci objektu .NET zodpovídá vývojář aplikace. Máte určitou flexibilitu při výběru serializátoru.

Jednoduchým způsobem serializace objektů je použití JsonConvert metod serializace v System.text.Json.

Přidejte obor názvů System.text.Json v sadě Visual Studio:

  1. Vyberte Nástroje>NuGet Správce balíčků> Správce balíčků Konzola*.

  2. Potom v okně konzoly Správce balíčků spusťte následující příkaz:

    Install-Package system.text.json
    

Následující Employee třída byla definována v Program.cs , aby ukázka ukázala, jak získat a nastavit serializovaný objekt:

class Employee
{
    public string Id { get; set; }
    public string Name { get; set; }
    public int Age { get; set; }

    public Employee(string employeeId, string name, int age)
    {
        Id = employeeId;
        Name = name;
        Age = age;
    }
}

Spuštění ukázky

Pokud chcete sestavit a spustit konzolovou aplikaci pro testování serializace objektů .NET, vyberte Ctrl+F5.

Snímek obrazovky znázorňující dokončenou konzolovou aplikaci

Vyčištění prostředků

Pokud chcete dál používat prostředky, které jste vytvořili v tomto článku, ponechte skupinu prostředků.

V opačném případě můžete zabránit poplatkům souvisejícím s prostředky, pokud jste dokončili používání prostředků, můžete odstranit skupinu prostředků Azure, kterou jste vytvořili.

Upozorňující

Odstranění skupiny prostředků je nevratné. Když odstraníte skupinu prostředků, všechny prostředky ve skupině prostředků se trvale odstraní. Ujistěte se, že nechtěně neodstraníte nesprávnou skupinu prostředků nebo prostředky. Pokud jste prostředky vytvořili v existující skupině prostředků, která obsahuje prostředky, které chcete zachovat, můžete místo odstranění skupiny prostředků odstranit jednotlivé prostředky.

Odstranění skupiny prostředků

  1. Přihlaste se k portálu Azure Portal a potom vyberte Skupiny prostředků.

  2. Vyberte skupinu prostředků, která se má odstranit.

    Pokud existuje mnoho skupin prostředků, zadejte do pole Filtr libovolné pole název skupiny prostředků, kterou jste vytvořili pro dokončení tohoto článku. V seznamu výsledků hledání vyberte skupinu prostředků.

    Snímek obrazovky znázorňující seznam skupin prostředků, ze které si můžete vybrat, ze kterého chcete odstranit

  3. Vyberte Odstranit skupinu prostředků.

  4. V podokně Odstranit skupinu prostředků zadejte název skupiny prostředků, abyste ji potvrdili, a pak vyberte Odstranit.

    Snímek obrazovky znázorňující pole, které vyžaduje zadání názvu prostředku k potvrzení odstranění

Během několika okamžiků se odstraní skupina prostředků a všechny její prostředky.