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, která má 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čte na kód na GitHub
Naklonujte úložiště z (https://github.com/Azure-Samples/azure-cache-redis-samples/tree/main/quickstart/dotnet v GitHub.
Požadavky
- Předplatné Azure – vytvoření bezplatného předplatného
- Visual Studio 2019
- .NET Framework 4 nebo vyšší, což vyžaduje klient StackExchange.Redis.
Vytvoření mezipaměti
Pokud chcete vytvořit mezipaměť, přihlaste se k Azure Portal a vyberte Vytvořit prostředek.
Na stránce Nový vyberte Databáze a pak vyberte Azure Cache for Redis.
Na stránce New Redis Cache nakonfigurujte nastavení pro novou mezipaměť.
Nastavení Volba hodnoty Popis Předplatné Rozevírací seznam a výběr předplatného Předplatné, ve kterém se má vytvořit tato nová instance Azure Cache for Redis. Skupina prostředků Rozevírací seznam a vyberte skupinu prostředků nebo vyberte Vytvořit novou a zadejte název nové skupiny prostředků. Název skupiny prostředků, ve které se má 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é obsahují jenom čísla, písmena nebo pomlčky. Název musí začínat a končit číslem nebo písmenem a nesmí obsahovat po sobě jdoucí spojovníky. Název hostitele vaší instance mezipaměti bude <název> DNS.redis.cache.windows.net. Umístění Rozevírací seznam a výběr umístění Vyberte oblast poblíž jiných služeb, které budou vaši mezipaměť používat. 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 Azure Cache for Redis Přehled. Vyberte kartu Sítě nebo vyberte tlačítko Sítě v dolní části stránky.
Na kartě Sítě vyberte metodu připojení.
Vyberte kartu Další: Upřesnit nebo vyberte tlačítko Další: Upřesnit v dolní části stránky.
Na kartě Upřesnit pro instanci základní nebo standardní mezipaměti vyberte přepínač povolení, pokud chcete povolit port bez protokolu TLS. Můžete také vybrat verzi Redis, kterou chcete použít, a to buď 4, nebo 6.
Na kartě Upřesnit pro instanci mezipaměti Premium nakonfigurujte nastavení pro port bez protokolu TLS, clustering a trvalost dat. Můžete také vybrat verzi Redis, kterou chcete použít, a to buď 4, nebo 6.
Vyberte kartu Další: Značky nebo vyberte tlačítko Další: Značky v dolní části stránky.
Volitelně na kartě Značky zadejte název a hodnotu, pokud chcete prostředek zařadit do kategorií.
Vyberte Zkontrolovat a vytvořit. Přejdete na kartu Zkontrolovat a vytvořit, kde Azure ověří vaši konfiguraci.
Po zobrazení zelené zprávy ověření vyberte Vytvořit.
Vytvoření mezipaměti trvá nějakou dobu. Průběh můžete sledovat na stránce přehledu Azure Cache for Redis. Když se stav zobrazí jako Spuštěný, je mezipaměť připravená k použití.
Načtení názvu hostitele, portů a přístupových klíčů z Azure Portal
Pro připojení Azure Cache for Redis serveru 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 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.
Pokud chcete získat název hostitele a porty, v levém navigačním panelu mezipaměti vyberte Vlastnosti. Název hostitele je název dns> formuláře.redis.cache.windows.net<.
Vytvořte soubor ve svém počítači s názvem CacheSecrets.config a umístěte ho C:\AppSecrets\CacheSecrets.config.
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.Soubor uložte.
Konfigurace klienta mezipaměti
V této části připravíte konzolovou aplikaci tak, aby používala klienta StackExchange.Redis pro .NET.
V Visual Studio vyberte Nástroje>NuGet Správce balíčků>Správce balíčků Konzola a v okně konzoly Správce balíčků konzoly spusťte následující příkaz.
Install-Package StackExchange.Redis
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 Visual Studio otevřete soubor App.config a ověřte, že obsahuje appSettings
file
atribut, který odkazuje na souborCacheSecrets.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 jednoduché použití této ukázky použijeme 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í RedisConnectionu
Připojení k mezipaměti je spravováno RedisConnection
třídou. 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.
Zobrazí RedisConnection.cs
se 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 je 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í při 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.cs
aplikaci konzoly se zobrazí následující kód metody RunRedisCommandsAsync
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 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 do mezipaměti objekty .NET i primitivní datové typy, 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žití JsonConvert
metod serializace v System.text.Json
.
Přidejte obor System.text.Json
názvů do Visual Studio:
Vyberte Nástroje>NuGet Správce balíčků>Správce balíčků Konzola*.
Potom v okně konzoly Správce balíčků spusťte následující příkaz.
Install-Package system.text.json
Employee
Následující 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.
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 ve stávající skupině prostředků, která obsahuje prostředky, které chcete zachovat, můžete odstranit každý prostředek 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ů.
Zobrazí se výzva k potvrzení odstranění skupiny prostředků. Zadejte název skupiny prostředků, který chcete potvrdit, a vyberte Odstranit.
Po chvíli bude skupina prostředků včetně všech obsažených prostředků odstraněná.