Gyorsútmutató: Az Azure Cache for Redis használata a .NET-keretrendszerben

Ebben a rövid útmutatóban az Azure Cache for Redist egy .NET-keretrendszer alkalmazásba építi be, hogy hozzáférhessen egy biztonságos, dedikált gyorsítótárhoz, amely az Azure bármely alkalmazásából elérhető. A StackExchange.Redis-ügyfelet kifejezetten C# kóddal használja egy .NET-konzolalkalmazásban.

Ugrás a GitHubon található kódra

Klónozza az adattárat (https://github.com/Azure-Samples/azure-cache-redis-samples/tree/main/quickstart/dotnet a GitHubon.

Előfeltételek

Gyorsítótár létrehozása

  1. Gyorsítótár létrehozásához jelentkezzen be az Azure Portalra, és válassza az Erőforrás létrehozása lehetőséget.

    Create a resource is highlighted in the left navigation pane.

  2. Az Új lapon válassza az Adatbázisok, majd az Azure Cache for Redis lehetőséget.

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

  3. Az Új Redis Cache lapon konfigurálja az új gyorsítótár beállításait.

    Beállítás Válasszon egy értéket Leírás
    Előfizetés Legördülő menüben válassza ki az előfizetését. Az előfizetés, amely alatt létre kell hozni ezt az új Azure Cache for Redis-példányt.
    Erőforráscsoport Legördülő menüben jelöljön ki egy erőforráscsoportot, vagy válassza az Új létrehozása lehetőséget, és adjon meg egy új erőforráscsoportnevet. Annak az erőforráscsoportnak a neve, amelyben létre kívánja hozni a gyorsítótárat és más erőforrásokat. Ha az összes alkalmazás-erőforrást egy erőforráscsoportba helyezi, egyszerűen kezelheti vagy törölheti őket.
    DNS-név Adjon meg egy egyedi nevet. A gyorsítótár nevének 1 és 63 karakter közötti sztringnek kell lennie, amely csak számokat, betűket vagy kötőjeleket tartalmaz. A névnek számmal vagy betűvel kell kezdődnie és végződnie, és nem tartalmazhat egymást követő kötőjeleket. A gyorsítótárpéldány állomásneve< DNS name.redis.cache.windows.net.>
    Helyen Legördülő menüben válasszon ki egy helyet. Válasszon ki egy régiót a gyorsítótárat használó más szolgáltatások közelében.
    Gyorsítótár típusa Legördülő menü, és válasszon ki egy szintet. A szint határozza meg a gyorsítótár számára elérhető méretet, teljesítményt és szolgáltatásokat. További információt az Azure Cache for Redis áttekintésében talál.
  4. Válassza a Hálózat lapfület , vagy válassza a Lap alján található Hálózatkezelés gombot.

  5. A Hálózatkezelés lapon válassza ki a kapcsolati módszert.

  6. Válassza a Tovább: Speciális lapot, vagy a Lap alján található Tovább: Speciális gombot a Speciális lap megjelenítéséhez.

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

    • Alapszintű vagy standard gyorsítótárak esetén állítsa be a nem TLS-portok kijelölését. Kiválaszthatja azt is, hogy engedélyezni szeretné-e a Microsoft Entra-hitelesítést.
    • Prémium szintű gyorsítótár esetén konfigurálja a nem TLS-port, a fürtözés, a felügyelt identitás és az adatmegőrzés beállításait. Kiválaszthatja azt is, hogy engedélyezni szeretné-e a Microsoft Entra-hitelesítést.
  7. Válassza a Tovább: Címkék lapot, vagy válassza a Következő: Címkék gombot a lap alján.

  8. Ha kategorizálni szeretné az erőforrást, a Címkék lapon adja meg a nevet és az értéket.

  9. Válassza az Áttekintés + létrehozás lehetőséget. Ekkor megjelenik a Véleményezés + létrehozás lap, ahol az Azure ellenőrzi a konfigurációt.

  10. A zöld érvényesítési üzenet megjelenése után válassza a Létrehozás lehetőséget.

A gyorsítótár létrehozása eltarthat egy ideig. Az előrehaladást az Azure Cache for Redis áttekintési oldalán követheti nyomon. Ha az állapot futásként jelenik meg, a gyorsítótár készen áll a használatra.

Állomásnév, portok és hozzáférési kulcsok lekérése az Azure Portalról

Az Azure Cache for Redis-kiszolgáló csatlakoztatásához a gyorsítótár-ügyfélnek szüksége van a gazdagép nevére, portjára és kulcsára a gyorsítótárhoz. Egyes ügyfelek különböző neveken hivatkozhatnak ezekre az elemekre. A gazdagép nevét, portját és kulcsait az Azure Portalról szerezheti be.

  • A hozzáférési kulcsok lekéréséhez a gyorsítótár bal oldali navigációs sávjáról válassza az Access-kulcsok lehetőséget.

    Azure Cache for Redis keys

  • A gazdagép nevének és portjának lekéréséhez a gyorsítótár bal oldali navigációs sávjáról válassza a Tulajdonságok lehetőséget. A gazdagép neve a DNS name.redis.cache.windows.net> formátumú<.

    Azure Cache for Redis properties

  1. Hozzon létre egy fájlt a számítógépen CacheSecrets.config néven, és helyezze el a következő helyen: C:\AppSecrets\CacheSecrets.config.

  2. Módosítsa a CacheSecrets.config fájlt, és adja hozzá az alábbi tartalmakat:

    <appSettings>
        <add key="CacheConnection" value="<host-name>,abortConnect=false,ssl=true,allowAdmin=true,password=<access-key>"/>
    </appSettings>
    
  3. A <host-name> karakterláncot cserélje le a gyorsítótár gazdagépének nevére.

  4. Az <access-key> karakterláncot cserélje le a gyorsítótár elsődleges kulcsára.

  5. Mentse a fájlt.

A gyorsítótárügyfél konfigurálása

Ebben a szakaszban előkészíti a konzolalkalmazást a .NET-hez készült StackExchange.Redis-ügyfél használatára.

  1. A Visual Studióban válassza a Tools>NuGet Csomagkezelő> Csomagkezelő Console lehetőséget, és futtassa a következő parancsot a Csomagkezelő konzolablakból.

    Install-Package StackExchange.Redis
    
  2. A telepítés befejezése után a StackExchange.Redis gyorsítótárügyfél már használható a projekttel.

Csatlakozás a Titkos kulcsok gyorsítótárba

Nyissa meg az App.config fájlt a Visual Studióban, és ellenőrizze, hogy tartalmaz-e afileappSettingsCacheSecrets.config fájlra hivatkozó attribútumot.

<?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>

Soha ne tároljon hitelesítő adatokat a forráskódban. A minta egyszerűségéhez külső titkos kulcsok konfigurációs fájlja használható. Ennél még jobb megoldás lenne a tanúsítványokkal rendelkező Azure Key Vault használata.

Csatlakozás a gyorsítótárba a Redis használatával Csatlakozás ion

A gyorsítótárhoz való kapcsolatot az RedisConnection osztály kezeli. A kapcsolat először a következő utasításból Program.csjön létre:

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


A rendszer a CacheConnection alkalmazásbeállítás értékét használja ahhoz, hogy jelszóparaméterként hivatkozzon a gyorsítótár Azure Portalon található kapcsolati sztringjére.

Ekkor RedisConnection.csmegjelenik a StackExchange.Redis kulcsszóval rendelkező using névtér. Erre szükség van az RedisConnection osztályhoz.

using StackExchange.Redis;

A RedisConnection kód biztosítja, hogy mindig kifogástalan kapcsolat legyen a gyorsítótárral a példány StackExchange.Rediskezelésével.ConnectionMultiplexer Az RedisConnection osztály újra létrehozza a kapcsolatot, ha megszakad a kapcsolat, és nem tud automatikusan újracsatlakozni.

További információ: StackExchange.Redis és a GitHub-adattár kódja.

Gyorsítótárparancsok végrehajtása

A program.cskövetkező kód jelenik meg a RunRedisCommandsAsync metódushoz a Program konzolalkalmazás osztályában:

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}");
    }


A gyorsítótárelemek a StringSetAsync és a StringGetAsync metódussal tárolhatók és kérhetők le.

A példában láthatja, hogy a Message kulcs értékre van állítva. Az alkalmazás frissítette ezt a gyorsítótárazott értéket. Az alkalmazás a parancsot és a PING parancsot is végrehajtotta.

.NET-objektumok használata a gyorsítótárban

A Redis-kiszolgáló a legtöbb adatot sztringként tárolja, de ezek a sztringek számos adattípust tartalmazhatnak, beleértve a szerializált bináris adatokat is, amelyek a .NET-objektumok gyorsítótárban való tárolására használhatók.

Az Azure Cache for Redis képes a .NET-objektumok és a primitív adattípusok gyorsítótárazásához, de a .NET-objektumok gyorsítótárazása előtt szerializálni kell.

Ez a .NET-objektumszerializálás az alkalmazásfejlesztők feladata, akik így rugalmasan kiválaszthatják a szerializálót.

Az objektumok szerializálásának egyik egyszerű módja a szerializálási módszerek használata a JsonConvert következőben System.text.Json: .

Adja hozzá a névteret a System.text.Json Visual Studióhoz:

  1. Válassza az Eszközök>NuGet Csomagkezelő> Csomagkezelő konzol* lehetőséget.

  2. Ezután futtassa a következő parancsot a Csomagkezelő konzolablakból.

    Install-Package system.text.json
    

A következő Employee osztály Program.cs lett definiálva, hogy a minta be tudja mutatni a szerializált objektum lekérésének és beállításának módját is:

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;
    }
}

Minta futtatása

A .NET-objektumok szerializálásának teszteléséhez buildelje és futtassa a konzolalkalmazást a Ctrl+F5 billentyűkombináció lenyomásával.

Console app completed

Az erőforrások eltávolítása

Ha folytatja a rövid útmutató használatát, megtarthatja a létrehozott erőforrásokat, és újra felhasználhatja őket.

Ha azonban befejezte az oktatóanyag mintaalkalmazásának használatát, a díjak elkerülése érdekében törölheti az ebben a rövid útmutatóban létrehozott Azure-erőforrásokat.

Fontos

Az erőforráscsoport törlése nem visszaállítható; az erőforráscsoport és a benne foglalt erőforrások véglegesen törlődnek. Figyeljen arra, hogy ne töröljön véletlenül erőforráscsoportot vagy erőforrásokat. Ha a minta üzemeltetéséhez létrehozott erőforrásokat egy meglévő erőforráscsoporton belül hozta létre, amely a megtartani kívánt erőforrásokat tartalmazza, az erőforráscsoport törlése helyett egyenként törölheti az egyes erőforrásokat a bal oldalon.

Jelentkezzen be az Azure Portalra, és válassza az Erőforráscsoportok elemet.

A Szűrés név alapján... mezőbe írja be az erőforráscsoport nevét. A jelen cikk utasításai egy TestResources nevű erőforráscsoportot használtak. Az eredménylistában az erőforráscsoportban válassza a ... lehetőséget, majd az Erőforráscsoport törlése lehetőséget.

Delete

A rendszer kéri, hogy erősítse meg az erőforráscsoport törlését. Írja be a megerősítéshez az erőforráscsoport nevét, és válassza a Törlés lehetőséget.

A rendszer néhány pillanaton belül törli az erőforráscsoportot és a benne foglalt erőforrásokat.

Következő lépések