Rychlý start: Použití Azure Cache for Redis v .NET Framework

V tomto rychlém startu zahrnete Azure Cache for Redis do aplikace .NET Framework, abyste měli 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

Naklonujte úložiště z (https://github.com/Azure-Samples/azure-cache-redis-samples/tree/main/quickstart/dotnet na GitHubu.

Požadavky

Vytvoření mezipaměti

  1. Pokud chcete vytvořit mezipaměť, přihlaste se k webu Azure Portal a vyberte Vytvořit prostředek.

    Create a resource is highlighted in the left navigation pane.

  2. Na stránce Nový vyberte Databáze a pak vyberte Azure Cache for Redis.

    On New, Databases is highlighted, and Azure Cache for Redis is highlighted.

  3. Na stránce New Redis Cache nakonfigurujte nastavení pro novou mezipaměť.

    Nastavení Zvolit hodnotu Popis
    Předplatné Rozevírací seznam a vyberte své předplatné. Předplatné, ve kterém se má tato nová instance Azure Cache for Redis vytvořit.
    Skupina prostředků Rozevírací seznam a vyberte skupinu prostředků nebo vyberte Vytvořit novou a zadejte nový název 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 mezi 1 a 63 znaky, který obsahuje pouze číslice, písmena nebo pomlčky. Název musí začínat a končit číslicí nebo písmenem a nesmí obsahovat po sobě jdoucí pomlčky. Název hostitele vaší instance mezipaměti je< NÁZEV> DNS.redis.cache.windows.net.
    Místo Rozevírací seznam a výběr umístění Vyberte oblast poblíž jiných služeb, které používají vaši mezipaměť.
    Typ mezipaměti Rozevírací seznam a výběr úrovně Úroveň určuje velikost, výkon a funkce, které jsou k dispozici pro mezipaměť. Další informace najdete v tématu Přehled služby Azure Cache for Redis.
  4. Vyberte kartu Sítě nebo vyberte tlačítko Sítě v dolní části stránky.

  5. Na kartě Sítě vyberte metodu připojení.

  6. Vyberte kartu Další: Upřesnit nebo vyberte tlačítko Další: Upřesnit v dolní části stránky a zobrazte kartu Upřesnit.

    Screenshot showing the Advanced tab in the working pane and the available option to select.

    • U mezipamětí Basic nebo Standard přepněte výběr pro port, který není tls. Můžete také vybrat, jestli chcete povolit ověřování Microsoft Entra.
    • Pro mezipaměť Premium nakonfigurujte nastavení pro port bez protokolu TLS, clustering, spravovanou identitu a trvalost dat. Můžete také vybrat, jestli chcete povolit ověřování Microsoft Entra.
  7. Vyberte kartu Další: Značky nebo vyberte tlačítko Další: Značky v dolní části stránky.

  8. Volitelně můžete na kartě Značky zadat název a hodnotu, pokud chcete prostředek zařadit do kategorií.

  9. Vyberte Zkontrolovat a vytvořit. Přejdete na kartu Zkontrolovat a vytvořit, kde Azure ověří vaši konfiguraci.

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

Vytvoření mezipaměti chvíli trvá. Průběh můžete sledovat na stránce Přehled služby Azure Cache for Redis. Když se stav zobrazí jako Spuštěno, je mezipaměť připravená k použití.

Načtení názvu hostitele, portů a přístupových klíčů z webu Azure Portal

K připojení serveru Azure Cache for Redis potřebuje klient mezipaměti název hostitele, porty a klíč pro mezipaměť. Někteří klienti mohou tyto položky označovat trochu odlišnými názvy. Název hostitele, porty a klíče můžete získat z webu Azure Portal.

  • Přístupové klíče získáte tak, že v levém navigačním panelu mezipaměti vyberete Přístupové klíče.

    Azure Cache for Redis keys

  • Pokud chcete získat název hostitele a porty, v levém navigačním panelu mezipaměti vyberte Vlastnosti. Název hostitele je ve formátu DNS name.redis.cache.windows.net>.<

    Azure Cache for Redis properties

  1. Vytvořte v počítači soubor s názvem CacheSecrets.config a umístěte ho C:\AppSecrets\CacheSecrets.config.

  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>
    
  3. <host-name> nahraďte názvem hostitele mezipaměti.

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

  5. 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 sadě Visual Studio vyberte Nástroje>NuGet Správce balíčků> Správce balíčků Konzola a v okně konzoly Správce balíčků spusťte následující příkaz.

    Install-Package StackExchange.Redis
    
  2. Po dokončení instalace budete moct se svým projektem používat klienta mezipaměti StackExchange.Redis.

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

V sadě Visual Studio otevřete soubor App.config a ověřte, že obsahuje appSettingsfile 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>

Neuchovávejte přihlašovací údaje ve zdrojovém 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í do mezipaměti pomocí Redisu Připojení ion

Připojení k mezipaměti spravuje RedisConnection třída. Připojení je nejprve provedeno v tomto příkazu z Program.cs:

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


Hodnota CacheConnection appSetting se používá k odkazování na připojovací řetězec mezipaměti z webu Azure Portal ve formě parametru hesla.

V RedisConnection.cstomto okně se zobrazí StackExchange.Redis obor názvů s klíčovým slovem using . To je potřeba pro RedisConnection třídu.

using StackExchange.Redis;

Kód RedisConnection zajišťuje, že existuje vždy v pořádku připojení k mezipaměti tím, že spravuje ConnectionMultiplexer instanci z StackExchange.Redis. RedisConnection Třída 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 GitHub.

Provádění příkazů mezipaměti

V program.csaplikaci konzoly můžete vidět následující kód pro RunRedisCommandsAsync metodu 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.

Serializaci objektů .NET má na starosti vývojář aplikace, kterému je tak poskytnuta flexibilita při výběru serializátoru.

Jedním z jednoduchých způsobů serializace objektů je použít JsonConvert serializační metody v System.text.Json.

System.text.Json Přidejte obor názvů do sady 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 mohla také ukázat, 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

Stisknutím kombinace kláves Ctrl+F5 sestavte a spusťte konzolovou aplikaci a otestujte serializaci objektů .NET.

Console app completed

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

Pokud budete pokračovat v používání tohoto rychlého startu, můžete prostředky vytvořené a znovu použít.

V opačném případě, pokud jste už s ukázkovou aplikací v tomto rychlém startu skončili, můžete prostředky Azure vytvořené v tomto rychlém startu odstranit, abyste se vyhnuli poplatkům.

Důležité

Odstranění skupiny prostředků je nevratné a skupina prostředků včetně všech v ní obsažených prostředků bude trvale odstraněna. Ujistěte se, že nechtěně neodstraníte nesprávnou skupinu prostředků nebo prostředky. Pokud jste vytvořili prostředky pro hostování této ukázky v existující skupině prostředků obsahující prostředky, které chcete zachovat, můžete všechny prostředky odstranit jednotlivě nalevo místo odstranění skupiny prostředků.

Přihlaste se k webu Azure Portal a potom vyberte Skupiny prostředků.

Do textového pole Filtrovat podle názvu... zadejte název vaší skupiny prostředků. V pokynech v tomto článku se používala skupina prostředků TestResources. Ve skupině prostředků v seznamu výsledků vyberte ... a pak odstraňte skupinu prostředků.

Delete

Zobrazí se výzva k potvrzení odstranění skupiny prostředků. Potvrďte zadáním názvu skupiny prostředků a vyberte Odstranit.

Po chvíli bude skupina prostředků včetně všech obsažených prostředků odstraněná.

Další kroky