Udostępnij za pośrednictwem


Szybki start: używanie usługi Azure Cache for Redis w środowisku .NET Framework

W tym przewodniku Szybki start uwzględnisz usługę Azure Cache for Redis w aplikacji .NET Framework, aby mieć dostęp do bezpiecznej dedykowanej pamięci podręcznej dostępnej z dowolnej aplikacji na platformie Azure. W szczególności używasz klienta StackExchange.Redis z kodem języka C# w aplikacji konsolowej platformy .NET.

Przejdź do kodu w usłudze GitHub

Sklonuj repozytorium z repozytorium Azure-Samples/azure-cache-redis-samples w witrynie GitHub.

Wymagania wstępne

Tworzenie pamięci podręcznej

  1. Aby utworzyć pamięć podręczną, zaloguj się do witryny Azure Portal. W menu portalu wybierz pozycję Utwórz zasób.

    Sceenshot przedstawiający opcję Utwórz zasób wyróżnioną w okienku nawigacji po lewej stronie w witrynie Azure Portal.

  2. W okienku Wprowadzenie wprowadź ciąg Azure Cache for Redis na pasku wyszukiwania. W wynikach wyszukiwania znajdź usługę Azure Cache for Redis, a następnie wybierz pozycję Utwórz.

    Zrzut ekranu przedstawiający witrynę Azure Marketplace z usługą Azure Cache for Redis w polu wyszukiwania i wyróżniony przycisk Utwórz.

  3. W okienku Nowa pamięć podręczna Redis Cache na karcie Podstawy skonfiguruj następujące ustawienia dla pamięci podręcznej:

    Ustawienie Akcja opis
    Subskrypcja Wybierz subskrypcję platformy Azure. Subskrypcja do użycia w celu utworzenia nowego wystąpienia usługi Azure Cache for Redis.
    Grupa zasobów: Wybierz grupę zasobów lub wybierz pozycję Utwórz nową i wprowadź nową nazwę grupy zasobów. Nazwa grupy zasobów, w której ma zostać utworzona pamięć podręczna i inne zasoby. Umieszczając wszystkie zasoby aplikacji w jednej grupie zasobów, można je łatwo zarządzać lub usuwać razem.
    Nazwa DNS Wprowadź unikatową nazwę. Nazwa pamięci podręcznej musi być ciągiem od 1 do 63 znaków, który zawiera tylko cyfry, litery i łączniki. Nazwa musi zaczynać się i kończyć cyfrą lub literą i nie może zawierać kolejnych łączników. Nazwa hosta wystąpienia pamięci podręcznej to \<DNS name>.redis.cache.windows.net.
    Lokalizacja Wybierz lokalizację. Region platformy Azure, który znajduje się w pobliżu innych usług korzystających z pamięci podręcznej.
    Jednostka SKU pamięci podręcznej Wybierz jednostkę SKU. Jednostka SKU określa rozmiar, wydajność i parametry funkcji, które są dostępne dla pamięci podręcznej. Aby uzyskać więcej informacji, zobacz Omówienie usługi Azure Cache for Redis.
    Rozmiar pamięci podręcznej Wybierz rozmiar pamięci podręcznej. Aby uzyskać więcej informacji, zobacz Omówienie usługi Azure Cache for Redis.
  4. Wybierz kartę Sieć lub wybierz pozycję Dalej: Sieć.

  5. Na karcie Sieć wybierz metodę łączności do użycia dla pamięci podręcznej.

  6. Wybierz kartę Zaawansowane lub wybierz pozycję Dalej: Zaawansowane.

  7. W okienku Zaawansowane sprawdź lub wybierz metodę uwierzytelniania na podstawie następujących informacji:

    Zrzut ekranu przedstawiający okienko Zaawansowane i dostępne opcje do wybrania.

    • Domyślnie w przypadku nowej pamięci podręcznej w warstwie Podstawowa, Standardowa lub Premium jest włączone uwierzytelnianie Entra firmy Microsoft, a uwierzytelnianie kluczy dostępu jest wyłączone.
    • W przypadku pamięci podręcznych w warstwie Podstawowa lub Standardowa można wybrać opcję portu innego niż TLS.
    • W przypadku pamięci podręcznych w warstwie Standardowa i Premium można włączyć strefy dostępności. Po utworzeniu pamięci podręcznej nie można wyłączyć stref dostępności.
    • W przypadku pamięci podręcznej Premium skonfiguruj ustawienia portów innych niż TLS, klastrowanie, tożsamość zarządzana i trwałość danych.

    Ważne

    W celu uzyskania optymalnego bezpieczeństwa zalecamy użycie identyfikatora Entra firmy Microsoft z tożsamościami zarządzanymi w celu autoryzowania żądań względem pamięci podręcznej, jeśli to możliwe. Autoryzacja przy użyciu identyfikatora Entra firmy Microsoft i tożsamości zarządzanych zapewnia doskonałe zabezpieczenia i łatwość korzystania z autoryzacji klucza dostępu współdzielonego. Aby uzyskać więcej informacji na temat używania tożsamości zarządzanych z pamięcią podręczną, zobacz Use Microsoft Entra ID for cache authentication (Używanie identyfikatora Entra firmy Microsoft do uwierzytelniania w pamięci podręcznej).

  8. (Opcjonalnie) Wybierz kartę Tagi lub wybierz pozycję Dalej: Tagi.

  9. (Opcjonalnie) Na karcie Tagi wprowadź nazwę i wartość tagu, jeśli chcesz podzielić zasób pamięci podręcznej.

  10. Wybierz przycisk Przejrzyj i utwórz.

    Na karcie Przeglądanie i tworzenie platforma Azure automatycznie weryfikuje konfigurację.

  11. Po pojawieniu się zielonego komunikatu Weryfikacja przekazana wybierz pozycję Utwórz.

Nowe wdrożenie pamięci podręcznej odbywa się w ciągu kilku minut. Postęp wdrażania można monitorować w okienku Przegląd usługi Azure Cache for Redis. Gdy zostanie wyświetlony stan Uruchomiono, pamięć podręczna jest gotowa do użycia.

Włączanie uwierzytelniania identyfikatora Entra firmy Microsoft w pamięci podręcznej

Jeśli masz pamięć podręczną, sprawdź, czy włączono uwierzytelnianie Firmy Microsoft Entra. Jeśli nie, włącz ją. Zalecamy używanie identyfikatora Entra firmy Microsoft dla Twoich aplikacji.

  1. W witrynie Azure Portal wybierz wystąpienie usługi Azure Cache for Redis, w którym chcesz użyć uwierzytelniania opartego na tokenach firmy Microsoft.

  2. Wybierz pozycję Uwierzytelnianie z menu Zasób.

  3. Sprawdź w okienku roboczym, czy jest zaznaczone pole wyboru Włącz uwierzytelnianie firmy Microsoft Entra. Jeśli tak, możesz przejść dalej.

  4. Wybierz pozycję Włącz uwierzytelnianie firmy Microsoft Entra i wprowadź nazwę prawidłowego użytkownika. Wprowadzony użytkownik jest automatycznie przypisywany zasad dostępu właściciela danych domyślnie po wybraniu pozycji Zapisz. Możesz również wprowadzić tożsamość zarządzaną lub jednostkę usługi, aby nawiązać połączenie z wystąpieniem pamięci podręcznej.

    Zrzut ekranu przedstawiający uwierzytelnianie wybrane w menu zasobów i zaznaczoną opcję Włącz uwierzytelnianie firmy Microsoft Entra.

  5. Zostanie wyświetlone okno podręczne z pytaniem, czy chcesz zaktualizować konfigurację, i informuje o tym, że zajmuje to kilka minut. Wybierz opcję Tak.

    Ważne

    Po zakończeniu operacji włączania węzły w wystąpieniu pamięci podręcznej są ponownie uruchamiane w celu załadowania nowej konfiguracji. Zalecamy wykonanie tej operacji w oknie obsługi lub poza godzinami pracy szczytu. Operacja może potrwać do 30 minut.

Aby uzyskać informacje na temat korzystania z identyfikatora Entra firmy Microsoft z interfejsem wiersza polecenia platformy Azure, zobacz strony referencyjne dotyczące tożsamości.

  1. Edytuj plik App.config i dodaj następującą zawartość:

    <appSettings>
    
    <add key="RedisHostName" value="your_redis_cache_hostname"/>
    
```
  1. Zastąp ciąg "your_Azure_Redis_hostname" nazwą hosta i numerami portów usługi Azure Redis. Na przykład: cache-name.eastus.redis.azure.net:10000 w przypadku usługi Azure Cache for Redis Enterprise i cache-name.redis.cache.windows.net:6380 dla usług Azure Cache for Redis.

  2. Zapisz plik.

Konfigurowanie klienta pamięci podręcznej

W tej sekcji przygotujesz aplikację konsolową do korzystania z klienta StackExchange.Redis dla platformy .NET.

  1. W programie Visual Studio wybierz pozycję Narzędzia NuGet>Menedżer pakietów> Menedżer pakietów Konsola i uruchom następujące polecenie w oknie konsoli Menedżer pakietów.

    Install-Package Microsoft.Azure.StackExchangeRedis
    
  2. Po ukończeniu instalacji klient pamięci podręcznej StackExchange.Redis będzie dostępny do użycia z projektem.

Nawiązywanie połączenia z pamięcią podręczną za pomocą programu RedisConnection

Połączenie z pamięcią podręczną jest zarządzane przez klasę RedisConnection . Połączenie jest najpierw wykonywane w tej instrukcji z :Program.cs

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

Wartość ustawienia appSetting CacheConnection jest używana do odwoływania się do parametrów połączenia pamięci podręcznej z witryny Azure Portal jako parametru hasła.

W RedisConnection.cspliku zostanie wyświetlona StackExchange.Redis przestrzeń nazw ze using słowem kluczowym . Jest to wymagane dla RedisConnection klasy .

using StackExchange.Redis;

Kod RedisConnection gwarantuje, że zawsze istnieje dobre połączenie z pamięcią podręczną przez zarządzanie wystąpieniem ConnectionMultiplexer z programu StackExchange.Redis. Klasa RedisConnection ponownie utworzy połączenie, gdy połączenie zostanie utracone i nie będzie można nawiązać połączenia automatycznie.

Aby uzyskać więcej informacji, zobacz StackExchange.Redis i kod w repozytorium GitHub.

Wykonywanie poleceń pamięci podręcznej

W program.cspliku zobaczysz następujący kod metody RunRedisCommandsAsync w Program klasie dla aplikacji konsolowej:

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


Elementy pamięci podręcznej można zapisywać i pobierać za pomocą metod StringSetAsync i StringGetAsync.

W tym przykładzie widać Message , że klucz jest ustawiony na wartość. Aplikacja zaktualizowała tę wartość w pamięci podręcznej. Aplikacja wykonała PING również polecenie i .

Praca z obiektami platformy .NET w pamięci podręcznej

Serwer Redis przechowuje większość danych jako ciągi, ale te ciągi mogą zawierać wiele typów danych, w tym serializowane dane binarne, które mogą być używane podczas przechowywania obiektów platformy .NET w pamięci podręcznej.

Usługa Azure Cache for Redis może buforować obiekty platformy .NET oraz pierwotne typy danych, ale zanim będzie możliwe buforowanie obiektu platformy .NET, trzeba go serializować.

Odpowiedzialność za serializację obiektu .NET spoczywa na deweloperze aplikacji, który ma możliwość wybrania serializatora.

Jednym z prostych sposobów serializacji obiektów jest użycie JsonConvert metod serializacji w programie System.text.Json.

System.text.Json Dodaj przestrzeń nazw do programu Visual Studio:

  1. Wybierz pozycję Narzędzia NuGet>Menedżer pakietów> Menedżer pakietów Konsola.

  2. Następnie uruchom następujące polecenie w oknie Menedżer pakietów Konsola.

    Install-Package system.text.json
    

Następująca Employee klasa została zdefiniowana w Program.cs , aby przykład mógł również pokazać, jak pobrać i ustawić serializowany obiekt:

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

Uruchamianie aplikacji przykładowej

Naciśnij klawisze Ctrl+F5, aby skompilować i uruchomić aplikację konsolową na potrzeby testowania serializacji obiektów platformy .NET.

Ukończona aplikacja konsolowa

Czyszczenie zasobów

Jeśli chcesz nadal korzystać z zasobów utworzonych w tym artykule, zachowaj grupę zasobów.

W przeciwnym razie, jeśli skończysz z zasobami, możesz usunąć utworzoną grupę zasobów platformy Azure, aby uniknąć naliczania opłat.

Ważne

Usunięcie grupy zasobów jest nieodwracalne. Jeśli usuniesz grupę zasobów, wszystkie zawarte w niej zasoby zostaną trwale usunięte. Uważaj, aby nie usunąć przypadkowo niewłaściwych zasobów lub grupy zasobów. Jeśli zasoby zostały utworzone w istniejącej grupie zasobów zawierającej zasoby, które chcesz zachować, możesz usunąć każdy zasób indywidualnie zamiast usuwać grupę zasobów.

Aby usunąć grupę zasobów

  1. Zaloguj się do witryny Azure Portal, a następnie wybierz pozycję Grupy zasobów.

  2. Wybierz grupę zasobów, którą chcesz usunąć.

    Jeśli istnieje wiele grup zasobów, użyj pola Filtruj dla dowolnego pola... wpisz nazwę grupy zasobów utworzonej dla tego artykułu. Wybierz grupę zasobów na liście wyników.

    Zrzut ekranu przedstawiający listę grup zasobów do usunięcia w okienku roboczym.

  3. Wybierz pozycję Usuń grupę zasobów.

  4. Zobaczysz prośbę o potwierdzenie usunięcia grupy zasobów. Wpisz nazwę grupy zasobów w celu potwierdzenia, a następnie wybierz pozycję Usuń.

    Zrzut ekranu przedstawiający formularz, który wymaga nazwy zasobu w celu potwierdzenia usunięcia.

Po krótkim czasie grupa zasobów i wszystkie jej zasoby zostaną usunięte.

Następne kroki