Oefening: een transactie maken in Azure Cache voor Redis

Voltooid

We gaan eerst een Azure Cache voor Redis-instantie maken. Daarna maken we een eenvoudige transactie waarmee twee gegevenswaarden in de cache worden geplaatst.

Een Azure Cache voor Redis-instantie maken

Laten we beginnen een Azure Cache voor Redis te maken met Azure CLI. Gebruik Cloud Shell aan de rechterkant van het browservenster om te communiceren met Azure.

We gebruiken de opdracht az redis create om een nieuwe Azure Cache voor Redis te maken. Daarvoor zijn enkele parameters nodig. Dit zijn de meest voorkomende. Raadpleeg de documentatie voor de volledige lijst.

Parameter Beschrijving
--name Naam van de cache: deze moet wereldwijd uniek zijn en bestaan uit letters, cijfers en streepjes.
--resource-group Gebruik de vooraf gemaakte resourcegroep [naam van sandbox-resourcegroep] die onderdeel is van de Azure-sandbox.
--location Geef de locatie van de cache op. Normaal gesproken kiest u een locatie die dicht bij de gebruikers van de gegevens ligt. In dit geval bent u beperkt tot de locaties die beschikbaar zijn in de Azure-sandbox. Selecteer de dichtstbijzijnde locatie voor u.
--vm-size Grootte van de Azure Cache voor Redis. Geldige waarden zijn [C0, C1, C2, C3, C4, C5, C6, P1, P2, P3, P4].
--sku Azure Cache voor Redis SKU. Geldige waarden zijn [Basic, Standard, Premium].

Een locatie selecteren

Met de gratis sandbox kunt u resources maken in een subset met wereldwijde Azure-regio's. Selecteer een regio in deze lijst wanneer u resources maakt:

  • westus2
  • southcentralus
  • centralus
  • eastus
  • westeurope
  • southeastasia
  • japaneast
  • brazilsouth
  • australiasoutheast
  • centralindia
  1. Maak een cache met de volgende opties:

    • Grootte: C0
    • SKU: Basic
  2. Hier volgt een voorbeeld van de opdrachtregel. Vergeet niet om de parameter [name] te vervangen door een unieke naam. Als u een andere regio dan US - oost wilt gebruiken, kunt u de locatie vervangen.

    REDIS_NAME=[name]
    
    az redis create \
        --name "$REDIS_NAME" \
        --resource-group <rgn>[sandbox resource group name]</rgn> \
        --location eastus \
        --vm-size C0 \
        --sku Basic
    

Een .NET Core-consoletoepassing maken

Maak vervolgens een .Net Core-consoletoepassing die we gaan gebruiken om gegevenswaarden in te voegen in onze Azure Cache voor Redis.

  1. Maak een nieuwe .NET Core-toepassing met Cloud Shell aan de rechterkant van het browservenster. Geef deze de naam 'RedisData'.

    cd ~
    dotnet new console --name RedisData
    
  2. Ga naar de nieuwe map die voor uw app is gemaakt.

    cd RedisData
    
  3. Compileer de toepassing en voer deze uit. De uitvoer zou 'Hello World!' moeten zijn.

    dotnet run
    

Het NuGet-pakket ServiceStack.Redis toevoegen

Nu u uw consoletoepassing hebt, moet u het NuGet-pakket ServiceStack.Redis toevoegen. Hierdoor kunnen we verbinding maken met de Azure Cache voor Redis en opdrachten uitvoeren in C#.

  1. Voeg het NuGet-pakket ServiceStack.Redis toe met de terminal-shell.

    dotnet add package ServiceStack.Redis
    
  2. Compileer de toepassing en voer deze opnieuw uit om ervoor te zorgen dat alles wordt gecompileerd. De uitvoer zou nog steeds 'Hello World!' moeten zijn.

Uw Azure Cache voor Redis-verbindingsreeks ophalen

Als u verbinding wilt maken met uw Azure Cache voor Redis, hebt u een verbindingsreeks nodig die uw wachtwoord en URL bevat. ServiceStack.Redis heeft een eigen indeling voor de verbindingsreeks: [password]@[hostname]:[sslport]?ssl=true.

U kunt uw wachtwoord ophalen met de Azure-portal of met de opdrachtregel. We gebruiken de laatste hier omdat we de portal-benadering hebben gebruikt in de module Uw webtoepassingen optimaliseren door alleen-lezengegevens op te halen in de caching met Redis.

Gebruik de opdracht az redis list-keys om de toegangssleutels op te halen. Voer deze opdrachten uit om de primaire sleutel op te vragen, deze op te slaan in een variabele met de naam REDIS_KEY en ten slotte weer te geven:

REDIS_KEY=$(az redis list-keys \
    --name "$REDIS_NAME" \
    --resource-group <rgn>[sandbox resource group name]</rgn> \
    --query primaryKey \
    --output tsv)

echo $REDIS_KEY

Voer vervolgens deze opdracht uit om de connection string te maken en weer te geven op de opdrachtregel. De hostnaam bestaat uit de naam van de cache gevolgd door .redis.cache.windows.net, en de poort is 6380, wat de standaardpoort is voor Redis SSL.

echo "$REDIS_KEY"@"$REDIS_NAME".redis.cache.windows.net:6380?ssl=true

Kopieer de verbindingsreeks naar het klembord — u hebt deze nodig in de volgende stap.

De verbindingsreeks toevoegen aan uw app

  1. Open Cloud Shell-editor vanuit de toepassingsmap.

    cd ~/RedisData
    code .
    
  2. Selecteer het bronbestand Program.cs.

  3. Maak het volgende veld in de klasse Program en plak de verbindingsreeks als waarde in het veld.

    static string redisConnectionString = "<connection string>";
    

    Hier volgt een voorbeeld:

    static string redisConnectionString = "ToOosHLZw9Gwyr46ZlxcNeCCIzS35IBkEtwsCt1Xu4c=@myname.redis.cache.windows.net:6380?ssl=true";
    

Twee gegevenswaarden invoegen in uw Azure Cache voor Redis

We gaan nu eindelijk gegevens toevoegen aan uw Azure Cache voor Redis.

  1. Voeg boven in het bestand Program.cs de volgende instructie using toe.

    using ServiceStack.Redis;
    
  2. Vervang de inhoud van de methode Main door de volgende code. Er wordt dan een transactie gebruikt voor het toevoegen van twee waarden.

    bool transactionResult = false;
    
    using (RedisClient redisClient = new RedisClient(redisConnectionString))
    using (var transaction = redisClient.CreateTransaction())
    {
        //Add multiple operations to the transaction
        transaction.QueueCommand(c => c.Set("MyKey1", "MyValue1"));
        transaction.QueueCommand(c => c.Set("MyKey2", "MyValue2"));
    
        //Commit and get result of transaction
        transactionResult = transaction.Commit();
    }
    
    if (transactionResult)
    {
        Console.WriteLine("Transaction committed");
    }
    else
    {
        Console.WriteLine("Transaction failed to commit");
    }
    
  3. Voordat u de toepassing gaat bouwen en uitvoeren, moet u ervoor zorgen dat de Redis-cache volledig is ingericht. Soms duurt dit nog enkele minuten nadat az redis create is voltooid. Voer de volgende opdracht uit om de status te controleren.

    az redis show \
        --name "$REDIS_NAME" \
        --resource-group <rgn>[sandbox resource group name]</rgn> \
        --query provisioningState
    

    Als de status Creating is, kijkt u over een paar minuten opnieuw. U ziet Succeeded als het inrichten is voltooid.

  4. Voer de toepassing uit en controleer of in de console Transactie is vastgelegd staat.

    dotnet run
    

Uw gegevens verifiëren

Laten we, om af te ronden, controleren of de gegevens die we hebben toegevoegd, zich in Azure Cache voor Redis bevinden.

  1. Meld u aan bij Azure Portal met het account waarmee u de sandbox hebt geactiveerd.

  2. Uw Azure Cache voor Redis vinden:

    1. Selecteer in het menu van Azure Portal of op de startpagina de optie Alle resources.

    2. Gebruik het filtervak aan de linkerkant en zoek en selecteer Azure Cache voor Redis-instanties.

      U kunt ook het zoekvak bovenaan gebruiken en de naam van de cache invoeren.

  3. Selecteer uw Azure Cache voor Redis-instantie.

  4. Selecteer in het deelvenster Overzicht voor uw Azure Cache voor Redis de optie Console. Hiermee opent u een Azure Cache voor Redis-console, waarmee u opdrachten op laag niveau Azure Cache voor Redis voeren.

  5. Voer de opdracht get MyKey1 uit. Controleer of de geretourneerde waarde MyValue1 is.

  6. Voer de opdracht get MyKey2 uit. Controleer of de geretourneerde waarde MyValue2 is.

    Schermafbeelding van de Azure Cache voor Redis-console met daarin de waarden van MyKey1 en MyKey2.