Snabb start: använda Azure cache för Redis med ett .NET Framework-programQuickstart: Use Azure Cache for Redis with a .NET Framework application

I den här snabb starten införlivar du Azure cache för Redis i en .NET Framework-app för att få åtkomst till en säker, dedikerad cache som är tillgänglig från alla program i Azure.In this quickstart, you incorporate Azure Cache for Redis into a .NET Framework app to have access to a secure, dedicated cache that is accessible from any application within Azure. Du använder särskilt stackexchange. Redis -klienten med C#-kod i en .net-konsol app.You specifically use the StackExchange.Redis client with C# code in a .NET console app.

FörutsättningarPrerequisites

Skapa en cacheCreate a cache

  1. Om du vill skapa en cache loggar du in på Azure Portal och väljer skapa en resurs.To create a cache, sign in to the Azure portal and select Create a resource.

    Välj Skapa en resurs

  2. Välj databaser på sidan nytt och välj sedan Azure cache för Redis.On the New page, select Databases and then select Azure Cache for Redis.

    Välj Azure-cache för Redis

  3. På sidan ny Redis cache konfigurerar du inställningarna för din nya cache.On the New Redis Cache page, configure the settings for your new cache.

    InställningSetting Föreslaget värdeSuggested value BeskrivningDescription
    DNS-namnDNS name Ange ett globalt unikt namn.Enter a globally unique name. Cache-namnet måste vara en sträng mellan 1 och 63 tecken som bara innehåller siffror, bokstäver eller bindestreck.The cache name must be a string between 1 and 63 characters that contains only numbers, letters, or hyphens. Namnet måste börja och sluta med en siffra eller en bokstav och får inte innehålla flera bindestreck i rad.The name must start and end with a number or letter, and can't contain consecutive hyphens. Din cacheposts värdnamn är * <DNS name> . Redis.cache.Windows.net*.Your cache instance's host name will be <DNS name>.redis.cache.windows.net.
    PrenumerationSubscription List rutan och välj din prenumeration.Drop down and select your subscription. Den prenumeration som du vill skapa den här nya Azure-cache för Redis-instansen för.The subscription under which to create this new Azure Cache for Redis instance.
    ResursgruppResource group List rutan och välj en resurs grupp, eller Välj Skapa ny och ange ett nytt resurs grupp namn.Drop down and select a resource group, or select Create new and enter a new resource group name. Namnet på resurs gruppen där du vill skapa cachen och andra resurser.Name for the resource group in which to create your cache and other resources. Genom att lägga till alla dina app-resurser i en resurs grupp kan du enkelt hantera eller ta bort dem tillsammans.By putting all your app resources in one resource group, you can easily manage or delete them together.
    PlatsLocation List rutan och välj en plats.Drop down and select a location. Välj en region nära andra tjänster som ska använda din cache.Select a region near other services that will use your cache.
    PrisnivåPricing tier List rutan och välj en pris nivå.Drop down and select a Pricing tier. Prisnivån avgör storlek, prestanda och funktioner som är tillgängliga för cacheminnet.The pricing tier determines the size, performance, and features that are available for the cache. Mer information finns i Översikt över Azure Cache for Redis.For more information, see Azure Cache for Redis Overview.
  4. Välj Skapa.Select Create.

     Skapa Azure Cache for Redis

    Anteckning

    Du kan vänta till att etableringen av cacheminnet tar cirka 15 till 20 minuter.You can expect the provisioning of the Cache to take around 15 to 20 minutes.

    Du kan övervaka förloppet på översikts sidan för Azure-cache för Redis.You can monitor progress on the Azure Cache for Redis Overview page. När statusen är igångär cacheminnet redo att användas.When Status shows as Running, the cache is ready to use.

    Azure cache för Redis har skapats

Hämta värdnamn, portar och åtkomst nycklar från Azure PortalRetrieve host name, ports, and access keys from the Azure portal

För att ansluta till en Azure-cache för Redis-instansen behöver cache-klienterna värd namnet, portarna och en nyckel för cachen.To connect to an Azure Cache for Redis instance, cache clients need the host name, ports, and a key for the cache. Vissa klienter kan hänvisa till dessa objekt med namn som skiljer sig något.Some clients might refer to these items by slightly different names. Du kan hämta värdnamn, portar och nycklar från Azure Portal.You can get the host name, ports, and keys from the Azure portal.

  • Hämta åtkomst nycklarna genom att gå till vänster navigering i cachen och välja åtkomst nycklar.To get the access keys, from your cache left navigation, select Access keys.

    Nycklar för Azure Cache for Redis

  • För att hämta värd namnet och portarna, från din cache-vänstra navigering, väljer du Egenskaper.To get the host name and ports, from your cache left navigation, select Properties. Värd namnet är av formatet * <DNS name> . Redis.cache.Windows.net*.The host name is of the form <DNS name>.redis.cache.windows.net.

    Egenskaper för Azure Cache for Redis

Skapa en fil på datorn med namnet CacheSecrets.config och placera den på en plats där den inte checkas in med källkoden för exempelappen.Create a file on your computer named CacheSecrets.config and place it in a location where it won't be checked in with the source code of your sample application. För den här snabbstarten finns filen CacheSecrets.config här: C:\AppSecrets\CacheSecrets.config.For this quickstart, the CacheSecrets.config file is located here, C:\AppSecrets\CacheSecrets.config.

Redigera filen CacheSecrets.config och lägg till följande innehåll:Edit the CacheSecrets.config file and add the following contents:

<appSettings>
    <add key="CacheConnection" value="<cache-name>.redis.cache.windows.net,abortConnect=false,ssl=true,allowAdmin=true,password=<access-key>"/>
</appSettings>

Ersätt <cache-name> med din cachens värdnamn.Replace <cache-name> with your cache host name.

Ersätt <access-key> med primärnyckeln för cachen.Replace <access-key> with the primary key for your cache.

Skapa en konsolappCreate a console app

I Visual Studio klickar du på fil > nytt > projekt.In Visual Studio, click File > New > Project.

Välj konsol program (.NET Framework) och bredvid Konfigurera appen.Select Console App (.NET Framework), and Next to configure your app. Ange ett projekt namn och klicka på skapa för att skapa ett nytt konsol program.Type a Project name and click Create to create a new console application.

Konfigurera cacheklientenConfigure the cache client

I det här avsnittet konfigurerar du konsolprogrammet att använda StackExchange.Redis-klienten för .NET.In this section, you will configure the console application to use the StackExchange.Redis client for .NET.

I Visual Studio klickar du på verktyg > NuGet Package Manager > Package Manager-konsolenoch kör följande kommando från fönstret Package Manager-konsol.In Visual Studio, click Tools > NuGet Package Manager > Package Manager Console, and run the following command from the Package Manager Console window.

Install-Package StackExchange.Redis

När installationen är klar är StackExchange.Redis-cacheklienten tillgänglig för användning med ditt projekt.Once the installation is completed, the StackExchange.Redis cache client is available to use with your project.

Ansluta till cachenConnect to the cache

Öppna din App.config-fil i Visual Studio och uppdatera den så att den inlkuderar ett appSettings file-attribut som refererar till filen CacheSecrets.config.In Visual Studio, open your App.config file and update it to include an appSettings file attribute that references the CacheSecrets.config file.

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

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

I Solution Explorer högerklickar du på referenser och klickar på Lägg till en referens.In Solution Explorer, right-click References and click Add a reference. Lägg till en referens i sammansättningen System.Configuration.Add a reference to the System.Configuration assembly.

Lägg till följande using-instruktioner i Program.cs:Add the following using statements to Program.cs:

using StackExchange.Redis;
using System.Configuration;

Anslutningen till Azure Cache for Redis hanteras av ConnectionMultiplexer-klassen.The connection to the Azure Cache for Redis is managed by the ConnectionMultiplexer class. Den här klassen delas och återanvändas i hela klientprogrammet.This class should be shared and reused throughout your client application. Skapa inte en ny anslutning för varje åtgärd.Do not create a new connection for each operation.

Lagra aldrig autentiseringsuppgifterna i källkoden.Never store credentials in source code. Om du vill hålla det här exemplet enkelt använder jag endast en config-fil för externa hemligheter.To keep this sample simple, I’m only using an external secrets config file. En bättre metod är att använda Azure Key Vault med certifikat.A better approach would be to use Azure Key Vault with certificates.

I Program.cs, lägger du till följande medlemmar i Program-klassen för ditt konsolprogram:In Program.cs, add the following members to the Program class of your console application:

private static Lazy<ConnectionMultiplexer> lazyConnection = new Lazy<ConnectionMultiplexer>(() =>
{
    string cacheConnection = ConfigurationManager.AppSettings["CacheConnection"].ToString();
    return ConnectionMultiplexer.Connect(cacheConnection);
});

public static ConnectionMultiplexer Connection
{
    get
    {
        return lazyConnection.Value;
    }
}

Den här metoden för att dela en ConnectionMultiplexer-instans i ditt program använder en statisk egenskap som returnerar en ansluten instans.This approach to sharing a ConnectionMultiplexer instance in your application uses a static property that returns a connected instance. Koden ger ett trådsäkert sätt att endast initiera en enda ansluten ConnectionMultiplexer-instans.The code provides a thread-safe way to initialize only a single connected ConnectionMultiplexer instance. abortConnect är inställt på falskt, vilket innebär att anropet lyckas även om en anslutning till Azure Cache for Redis inte har etablerats.abortConnect is set to false, which means that the call succeeds even if a connection to the Azure Cache for Redis is not established. En viktig egenskap i ConnectionMultiplexer är att anslutningen till cachen återställs automatiskt när nätverksproblemet eller andra fel har åtgärdats.One key feature of ConnectionMultiplexer is that it automatically restores connectivity to the cache once the network issue or other causes are resolved.

Värdet för appinställningen CacheConnection används för att referera till cache-anslutningssträngen från Azure-portalen som lösenordsparameter.The value of the CacheConnection appSetting is used to reference the cache connection string from the Azure portal as the password parameter.

Kör cachekommandonExecuting cache commands

Lägg till följande kod för procedur Main för klass Program för ditt konsolprogram:Add the following code for the Main procedure of the Program class for your console application:

static void Main(string[] args)
{
    // Connection refers to a property that returns a ConnectionMultiplexer
    // as shown in the previous example.
    IDatabase cache = Connection.GetDatabase();

    // Perform cache operations using the cache object...

    // Simple PING command
    string cacheCommand = "PING";
    Console.WriteLine("\nCache command  : " + cacheCommand);
    Console.WriteLine("Cache response : " + cache.Execute(cacheCommand).ToString());

    // Simple get and put of integral data types into the cache
    cacheCommand = "GET Message";
    Console.WriteLine("\nCache command  : " + cacheCommand + " or StringGet()");
    Console.WriteLine("Cache response : " + cache.StringGet("Message").ToString());

    cacheCommand = "SET Message \"Hello! The cache is working from a .NET console app!\"";
    Console.WriteLine("\nCache command  : " + cacheCommand + " or StringSet()");
    Console.WriteLine("Cache response : " + cache.StringSet("Message", "Hello! The cache is working from a .NET console app!").ToString());

    // Demonstrate "SET Message" executed as expected...
    cacheCommand = "GET Message";
    Console.WriteLine("\nCache command  : " + cacheCommand + " or StringGet()");
    Console.WriteLine("Cache response : " + cache.StringGet("Message").ToString());

    // Get the client list, useful to see if connection list is growing...
    // Note that this requires the allowAdmin=true
    cacheCommand = "CLIENT LIST";
    Console.WriteLine("\nCache command  : " + cacheCommand);
    var endpoint = (System.Net.DnsEndPoint) Connection.GetEndPoints()[0];
    var server = Connection.GetServer(endpoint.Host, endpoint.Port);

    var clients = server.ClientList(); 
    Console.WriteLine("Cache response :");
    foreach (var client in clients)
    {
        Console.WriteLine(client.Raw);
    }

    lazyConnection.Value.Dispose();
}

Azure Cache for Redis har ett konfigurerbart antal databaser (16 är standard) som kan användas för att logiskt separera data i ett Azure Cache for Redis.Azure Cache for Redis has a configurable number of databases (default of 16) that can be used to logically separate the data within an Azure Cache for Redis. Koden ansluter till standarddatabasen DB 0.The code connects to the default database, DB 0. Mer information finns i What are Redis databases? (Vad är Redis-databaser?) och Default Redis server configuration (Standardkonfiguration av Redis-server).For more information, see What are Redis databases? and Default Redis server configuration.

Cacheobjekt kan lagras och hämtas med hjälp av metoderna StringSet och StringGet.Cache items can be stored and retrieved by using the StringSet and StringGet methods.

Redis lagrar de flesta data som Redis-strängar, men dessa strängar kan innehålla flera typer av data, inklusive serialiserade binära data som kan användas när .NET-objekt lagras i cacheminnet.Redis stores most data as Redis strings, but these strings can contain many types of data, including serialized binary data, which can be used when storing .NET objects in the cache.

Tryck på Ctrl+F5 för att skapa och köra konsolprogrammet.Press Ctrl+F5 to build and run the console app.

I exemplet nedan ser du att Message-nyckeln tidigare hade ett cachelagrat värde som angavs med Redis-konsolen i Azure Portal.In the example below, you can see the Message key previously had a cached value, which was set using the Redis Console in the Azure portal. Appen uppdatera det cachelagrade värdet.The app updated that cached value. Appen körde även kommandona PING och CLIENT LIST.The app also executed the PING and CLIENT LIST commands.

Partiell konsolapp

Arbeta med .NET-objekt i cachenWork with .NET objects in the cache

Azure Cache for Redis kan cachelagra både .NET-objekt och basdatatyper, men .NET-objekt måste serialiseras innan de kan cachelagras.Azure Cache for Redis can cache both .NET objects and primitive data types, but before a .NET object can be cached it must be serialized. Den här .NET-objektserialiseringen är programutvecklarens ansvar och ger utvecklaren flexibilitet i valet av serialiserare.This .NET object serialization is the responsibility of the application developer, and gives the developer flexibility in the choice of the serializer.

Ett enkelt sätt att serialisera objekt är att använda JsonConvert-serialiseringsmetoderna i Newtonsoft.Json och serialisera till och från JSON.One simple way to serialize objects is to use the JsonConvert serialization methods in Newtonsoft.Json and serialize to and from JSON. I det här avsnittet ska du lägga till ett .NET-objekt till cachen.In this section, you will add a .NET object to the cache.

I Visual Studio klickar du på verktyg > NuGet Package Manager > Package Manager-konsolenoch kör följande kommando från fönstret Package Manager-konsol.In Visual Studio, click Tools > NuGet Package Manager > Package Manager Console, and run the following command from the Package Manager Console window.

Install-Package Newtonsoft.Json

Lägg till följande using-uttryck högst upp i Program.cs:Add the following using statement to the top of Program.cs:

using Newtonsoft.Json;

Lägg till följande Employee-klassdefinition i Program.cs:Add the following Employee class definition to Program.cs:

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)
    {
        this.Id = EmployeeId;
        this.Name = Name;
        this.Age = Age;
    }
}

Längst ned i Main()-procedur i Program.cs, och innan anropet till Dispose(), lägger du till följande rader med kod i cachen och hämtar ett serialiserat .NET-objekt:At the bottom of Main() procedure in Program.cs, and before the call to Dispose(), add the following lines of code to cache and retrieve a serialized .NET object:

    // Store .NET object to cache
    Employee e007 = new Employee("007", "Davide Columbo", 100);
    Console.WriteLine("Cache response from storing Employee .NET object : " + 
    cache.StringSet("e007", JsonConvert.SerializeObject(e007)));

    // Retrieve .NET object from cache
    Employee e007FromCache = JsonConvert.DeserializeObject<Employee>(cache.StringGet("e007"));
    Console.WriteLine("Deserialized Employee .NET object :\n");
    Console.WriteLine("\tEmployee.Name : " + e007FromCache.Name);
    Console.WriteLine("\tEmployee.Id   : " + e007FromCache.Id);
    Console.WriteLine("\tEmployee.Age  : " + e007FromCache.Age + "\n");

Tryck på Ctrl + F5 att skapa och köra konsolappen om du vill testa serialisering av .NET-objekt.Press Ctrl+F5 to build and run the console app to test serialization of .NET objects.

Konsolappen har slutförts

Rensa resurserClean up resources

Om du ska fortsätta till nästa självstudie kan du behålla resurserna som du har skapat i den här självstudien och använda dem igen.If you will be continuing to the next tutorial, you can keep the resources created in this quickstart and reuse them.

Om du är klar med exempelappen för snabbstart kan du ta bort Azure-resurserna som du skapade i snabbstarten för att undvika kostnader.Otherwise, if you are finished with the quickstart sample application, you can delete the Azure resources created in this quickstart to avoid charges.

Viktigt

Det går inte att ångra borttagningen av en resursgrupp och att resursgruppen och alla resurser i den tas bort permanent.Deleting a resource group is irreversible and that the resource group and all the resources in it are permanently deleted. Kontrollera att du inte av misstag tar bort fel resursgrupp eller resurser.Make sure that you do not accidentally delete the wrong resource group or resources. Om du har skapat resurserna som värd för det här exemplet i en befintlig resursgrupp som innehåller resurser som du vill behålla, kan du ta bort varje resurs separat från deras respektive blad istället för att ta bort resursgruppen.If you created the resources for hosting this sample inside an existing resource group that contains resources you want to keep, you can delete each resource individually from their respective blades instead of deleting the resource group.

Logga in på Azure Portal och klicka på Resursgrupper.Sign in to the Azure portal and click Resource groups.

Skriv namnet på din resursgrupp i textrutan Filter by name... (Filtrera efter namn...).In the Filter by name... textbox, type the name of your resource group. Anvisningarna för den här artikeln använde en resursgrupp med namnet TestResources.The instructions for this article used a resource group named TestResources. På din resursgrupp i resultatlistan klickar du på ... och därefter Ta bort resursgrupp.On your resource group in the result list, click ... then Delete resource group.

Ta bort

Du blir ombedd att bekräfta borttagningen av resursgruppen.You will be asked to confirm the deletion of the resource group. Skriv namnet på din resursgrupp för att bekräfta och klicka på Ta bort.Type the name of your resource group to confirm, and click Delete.

Efter en liten stund tas resursgruppen och resurser som finns i den bort.After a few moments, the resource group and all of its contained resources are deleted.

Nästa stegNext steps

I den här snabbstarten du har lärt dig hur du använder Azure Cache for Redis från ett .NET-program.In this quickstart, you learned how to use Azure Cache for Redis from a .NET application. Fortsätt till nästa snabbstart om du vill använda Azure Cache for Redis med en ASP.NET-webbapp.Continue to the next quickstart to use Azure Cache for Redis with an ASP.NET web app.

Vill du optimera och Spara på dina moln utgifter?Want to optimize and save on your cloud spending?