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

Ebben a rövid útmutatóban az Azure Cache for Redist egy .NET Core-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 Core-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-core 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

Jegyezze fel a GAZDAGÉP NEVÉT és az Elsődleges hozzáférési kulcsot. Ezeket az értékeket később a Gyorsítótár Csatlakozás ion titkos kód létrehozásához fogja használni.

Helyi titkos kód hozzáadása a kapcsolati sztring

A parancsablakban futtassa a következő parancsot az új, CacheConnection nevű titkos kód tárolásához, miután kicserélte a helyőrzőket (a csúcsos zárójelekkel együtt) a saját gyorsítótárának nevére és elsődleges hozzáférési kulcsára:

dotnet user-secrets set CacheConnection "<cache name>.redis.cache.windows.net,abortConnect=false,ssl=true,allowAdmin=true,password=<primary-access-key>"

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: configuration["CacheConnection"].ToString());

Itt RedisConnection.csláthatja, hogy a StackExchange.Redis névtér hozzá lett adva a kódhoz. 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.

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 id, string name, int age)
        {
            Id = id;
            Name = name;
            Age = age;
        }
    }

Minta futtatása

Ha megnyitotta a fájlokat, mentse őket, és hozza létre az alkalmazást a következő paranccsal:

dotnet build

Futtassa az alkalmazást a következő paranccsal a .NET-objektumok szerializálásának teszteléséhez:

dotnet run

Console app completed

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

Ha továbbra is használja ezt a rövid útmutatót, megtarthatja a létrehozott erőforrásokat, és újra felhasználhatja őket.

Ellenkező esetben, ha végzett a gyorsútmutató-mintaalkalmazással, törölheti az ebben a rövid útmutatóban létrehozott Azure-erőforrásokat a díjak elkerülése érdekében.

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.

Erőforráscsoport törlése

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

  2. 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

  3. A rendszer kérni fogja, 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