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
- Předplatné Azure. Vytvořte si ho zdarma
- Visual Studio 2019
- Rozhraní .NET Framework 4 nebo novější podle požadavků klienta StackExchange.Redis
Vytvoření mezipaměti
Pokud chcete vytvořit mezipaměť, přihlaste se k webu Azure Portal. V nabídce portálu vyberte Vytvořit prostředek.
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.
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. Vyberte kartu Sítě nebo vyberte Další: Sítě.
Na kartě Sítě vyberte metodu připojení, která se má použít pro mezipaměť.
Vyberte kartu Upřesnit nebo vyberte Další: Upřesnit.
V podokně Upřesnit ověřte nebo vyberte metodu ověřování na základě následujících informací:
- 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.
(Volitelné) Vyberte kartu Značky nebo vyberte Další: Značky.
(Volitelné) Na kartě Značky zadejte název a hodnotu značky , pokud chcete zařadit prostředek mezipaměti do kategorií.
Vyberte tlačítko Zkontrolovat a vytvořit.
Na kartě Zkontrolovat a vytvořit Azure vaši konfiguraci automaticky ověří.
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ěť:
- Na webu Azure Portal přejděte do mezipaměti.
- V nabídce služby v části Nastavení vyberte Ověřování.
- V podokně Ověřování vyberte kartu Přístupové klávesy.
- Pokud chcete zkopírovat hodnotu přístupového klíče, vyberte v poli klíč ikonu Kopírovat .
Získání názvu hostitele a portů pro mezipaměť:
- Na webu Azure Portal přejděte do mezipaměti.
- V nabídce služby vyberte Přehled.
- 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
. - U portů vyberte ikonu Kopírovat a zkopírujte hodnoty portu.
Vytvořte v počítači soubor s názvem CacheSecrets.config. Umístěte ho do složky *C:\AppSecrets*.
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.
Uložte soubor.
Konfigurace klienta mezipaměti
V této části připravíte konzolovou aplikaci na použití klienta StackExchange.Redis pro .NET.
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
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:
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
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.
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ů
Přihlaste se k portálu Azure Portal a potom vyberte Skupiny prostředků.
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ů.
Vyberte Odstranit skupinu prostředků.
V podokně Odstranit skupinu prostředků zadejte název skupiny prostředků, abyste ji potvrdili, a pak vyberte Odstranit.
Během několika okamžiků se odstraní skupina prostředků a všechny její prostředky.