Поделиться через


Краткое руководство. Использование Azure Redis в Node.js

В этом кратком руководстве описано, как интегрировать Azure Managed Redis или Azure Cache for Redis в приложение Node.js. Приложение имеет доступ к защищенному выделенному кэшу, доступному из любого приложения в Azure.

Предпосылки

Создайте управляемый экземпляр Redis в Azure

  1. Чтобы создать экземпляр Azure Managed Redis, войдите на портал Azure и выберите "Создать ресурс".

  2. На новой странице в поле поиска введите Кэш Azure для Redis.

  3. На вкладке "Новый кэш Redis" настройте параметры для нового кэша в основах.

    Настройки Выберите значение Описание
    Подписка Раскройте список и выберите нужную подписку. Подписка, в которой создается новый экземпляр Управляемого Redis Azure.
    Группа ресурсов Раскройте список и выберите группу ресурсов или нажмите Создать и введите имя для новой группы ресурсов. Имя группы ресурсов, в которой будут созданы кэш и другие ресурсы. Поместив все ресурсы приложения в одну группу ресурсов, вы сможете легко управлять ими и/или удалить их вместе.
    Имя Введите уникальное в пределах региона имя. Имя кэша должно быть строкой от 1 до 63 символов при сочетании с именем региона кэша, содержащим только цифры, буквы или дефисы. (Если имя кэша меньше 45 символов, оно должно работать во всех доступных регионах.) Имя должно начинаться и заканчиваться числом или буквой и не может содержать последовательные дефисы. Имя.
    Регион Раскройте список и выберите место. Управляемый Redis azure доступен в выбранных регионах Azure.
    Уровень данных Выберите в памяти для высокой производительности или Flash для более низких производительности кэшей Уровни в памяти включают Balanced, Memory Optimized и Compute Optimized. Используйте уровень Flash для работы с данными в памяти (ОЗУ) и на твердотельном накопителе (SSD).
    Размер кэша Выпадающее меню и выбор размера. Размер кэша зависит от уровня. Наименьший размер — это сбалансированный уровень. Самый большой уровень в памяти — это оптимизированный для памяти уровень.
    Производительность Разверните список и выберите предпочтение производительности. Производительность зависит от количества виртуальных ЦП. Количество виртуальных ЦП зависит от уровня. Оптимизированный для вычислений имеет наибольшее количество виртуальных ЦП.

    Рекомендации по выбору нужного уровня производительности см. в разделе "Выбор нужного уровня".

    Это важно

    Все уровни памяти с объемом хранилища более 120 ГБ находятся в общедоступной предварительной версии, включая оптимизированные по памяти M150 и выше; сбалансированные B150 и выше; и оптимизированные по вычислениям X150 и выше. Все эти уровни и выше находятся в общедоступной предварительной версии.

    Все уровни, оптимизированные для флэш-памяти, находятся в общедоступном предварительном доступе.

  4. Нажмите кнопку "Далее": сеть и выберите общедоступную конечную точку или частную конечную точку.

  5. Нажмите кнопку "Далее": активная георепликация. Чтобы использовать активную георепликацию, ее необходимо включить во время подготовки. Кэши без активной георепликации нельзя впоследствии добавлять в группы активной георепликации или присоединяться к ним. Дополнительные сведения см. в разделе "Настройка активной георепликации для экземпляров Управляемого Redis Azure".

  6. Нажмите кнопку "Далее": вкладка "Дополнительно ".

    Настройте все модули Redis , которые нужно добавить в экземпляр.

    По умолчанию для нового управляемого кэша:

    • Идентификатор Microsoft Entra включен.
    • Проверка подлинности ключей доступа отключена по соображениям безопасности.

    Это важно

    Для оптимальной безопасности рекомендуется использовать идентификатор Microsoft Entra с управляемыми удостоверениями для авторизации запросов к кэшу, если это возможно. Авторизация с помощью идентификатора Microsoft Entra и управляемых удостоверений обеспечивает более высокую безопасность и удобство использования при авторизации ключа общего доступа. Для получения дополнительной информации об использовании управляемых удостоверений с кэшем см. в разделе Используйте идентификатор Microsoft Entra для проверки подлинности кэша.

    Задайте политику кластеризации:

    • Использование Enterprise для использования RedisSearch или других модулей
    • Используйте OSS для кластеризованного кэша.
    • Используйте Некластеризованный (Превью) для некластеризованного кэша.

    Дополнительные сведения о выборе политики кластеризации см. в статье "Политика кластера".

    Это важно

    После создания не удается изменить политику кластеризации управляемого экземпляра Redis Azure. Если вы используете RediSearch, требуется политика кластера Enterprise и NoEviction является единственной поддерживаемой политикой вытеснения.

    Это важно

    Если вы используете этот экземпляр кэша в группе георепликации, политики вытеснения нельзя изменить после создания экземпляра. Перед созданием кэша необходимо знать политики вытеснения основных узлов. Дополнительные сведения о активной георепликации см. в разделе "Предварительные требования для активной георепликации".

    Это важно

    После создания экземпляра кэша нельзя изменять модули. Модули должны быть включены во время создания экземпляра Кэш Azure для Redis. После создания кэша невозможно включить настройку модуля.

  7. Нажмите кнопку "Далее": теги и пропуск.

  8. Нажмите кнопку "Далее": проверка и создание.

  9. Проверьте параметры и выберите Создать.

    Создание экземпляра Redis занимает несколько минут. Ход выполнения можно отслеживать на странице обзора Управляемого Redis в Azure. Когда Состояние примет значение Running (Выполняется), кэш будет готов к использованию.

Создание экземпляра кэша Azure для Redis

  1. На портале Azure найдите и выберите кэш Azure для Redis.

  2. На странице кэша Azure для Redis выберите "Создать>кэш Azure для Redis".

  3. На вкладке "Основы" страницы"Новый кэш Redis " настройте следующие параметры:

    • Подписка. Выберите нужную подписку.
    • Группа ресурсов: выберите группу ресурсов или нажмите кнопку "Создать" и введите новое имя группы ресурсов. Размещение всех ресурсов приложения в одной группе ресурсов позволяет легко управлять и удалять их вместе.
    • Имя: введите уникальное имя кэша в регионе. Имя должно быть:
      • Должна быть строка длиной от 1 до 63 символов.
      • Содержит только цифры, буквы и дефисы.
      • Начните и закончите числом или буквой.
      • Не содержит последовательные дефисы.
    • Регион. Выберите регион Azure рядом с другими службами, используюющими кэш.
    • Номер SKU кэша: выберите номер SKU , чтобы определить доступные размеры, производительность и функции кэша.
    • Размер кэша: выберите размер кэша. Дополнительные сведения см. в статье Общие сведения о Кэше Azure для Redis.

    Снимок экрана: вкладка

  4. Выберите вкладку "Сеть" или нажмите кнопку "Далее: Сеть".

  5. На вкладке "Сеть" выберите метод подключения, используемый для кэша. Для обеспечения безопасности рекомендуется использовать частную конечную точку. Если выбрать частную конечную точку, выберите "Добавить частную конечную точку" и создайте частную конечную точку.

  6. Выберите вкладку "Дополнительно" или нажмите кнопку "Далее".

  7. На панели "Дополнительно" настройте следующие параметры:

    • Выберите Microsoft Entra Authentication или Access Keys Authentication. Проверка подлинности Microsoft Entra включена по умолчанию.
    • Выберите, следует ли включить порт, отличный от TLS.
    • Для кэша уровня "Премиум" можно настроить или отключить зоны доступности. После создания кэша невозможно отключить зоны доступности. Для кэша уровня "Стандартный" зоны доступности выделяются автоматически. Зоны доступности недоступны для базовой SKU.
    • Для кэша Premium настройте параметры для числа реплик, кластеризации и числа шардов, управляемого удостоверения, назначаемого системой, и сохранения данных.

    На следующем рисунке показана вкладка "Дополнительно " для номера SKU "Стандартный".

    Снимок экрана, отображающий вкладку

    Это важно

    Используйте Microsoft Entra ID с управляемыми удостоверениями, чтобы авторизовать запросы к кэшу, если это возможно. Авторизация с помощью идентификатора Microsoft Entra и управляемого удостоверения обеспечивает более высокую безопасность и проще использовать, чем авторизация общего ключа доступа. Для получения дополнительной информации об использовании управляемых удостоверений с кэшем см. в разделе Используйте идентификатор Microsoft Entra для проверки подлинности кэша.

  8. При необходимости выберите вкладку "Теги " или нажмите кнопку "Далее" и введите имена тегов и значения, чтобы классифицировать ресурсы кэша.

  9. Выберите "Просмотр и создание" и после прохождения проверки нажмите кнопку "Создать".

Развертывание нового кэша занимает несколько минут. Ход развертывания можно отслеживать на странице кэша Azure для Redis на портале. Когда состояние кэша отображается запущено, кэш готов к использованию.

Установка клиентской библиотеки node-redis

Библиотека redis узла является основным клиентом Node.js для Redis. Клиент можно установить с npm , выполнив следующую команду:

npm install redis

Создание приложения Node.js для доступа к кэшу

Создайте приложение Node.js, которое использует идентификатор Microsoft Entra или ключи доступа для подключения к экземпляру Управляемого Redis в Azure. Мы рекомендуем использовать идентификатор Microsoft Entra.

Использование проверки подлинности идентификатора Microsoft Entra в кэше

Кэши управляемых Redis в Azure по умолчанию имеют включенную аутентификацию Microsoft Entra.

  1. В портал Azure выберите кэш, в котором вы хотите использовать проверку подлинности на основе токена Microsoft Entra.

  2. Выберите проверку подлинности в меню "Ресурс".

  3. Выберите элемент и введите имя допустимого пользователя. По умолчанию, когда вы выбираете Сохранить, пользователю, которого вы вводите, автоматически назначается Политика доступа владельца данных. Вы также можете ввести управляемое удостоверение или служебный принципал, чтобы подключиться к экземпляру кэша.

    Снимок экрана: проверка подлинности, выбранная в меню ресурсов, и проверка проверки подлинности Microsoft Entra.

Сведения об использовании идентификатора Microsoft Entra с Azure CLI см. на справочных страницах для удостоверений.

Установка клиентской библиотеки удостоверений JavaScript Azure

Библиотека проверки подлинности Майкрософт (MSAL) позволяет получать маркеры безопасности от удостоверения Майкрософт для проверки подлинности пользователей. Существует клиентская библиотека удостоверений JavaScript Azure, которая использует MSAL для предоставления поддержки проверки подлинности маркеров. Установите эту библиотеку с помощью npm:

npm install @azure/identity

Создание нового приложения Node.js с помощью идентификатора Microsoft Entra

  1. Добавьте переменные среды для имени узла и идентификатора субъекта-службы, который является идентификатором объекта субъекта-службы Microsoft Entra ID или пользователя. В портал Azure найдите имя пользователя.

    set AZURE_MANAGED_REDIS_HOST_NAME=contosoCache
    set REDIS_SERVICE_PRINCIPAL_ID=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
    
  2. Создайте новый файл сценария с именем redistest.js.

  3. Добавьте следующий пример JavaScript в файл. В этом коде показано, как подключиться к экземпляру Управляемого Redis в Azure с помощью имени узла кэша и ключевых переменных среды. Код также хранит строковое значение в кэше и извлекает его. Также выполняются команды PING и CLIENT LIST. Дополнительные примеры использования Redis с клиентом redis узла см. в статье https://redis.js.org/.

    const { createClient } = require("redis");
    const { DefaultAzureCredential } = require("@azure/identity");
    
    async function main() {
      // Construct a Token Credential from Identity library, e.g. ClientSecretCredential / ClientCertificateCredential / ManagedIdentityCredential, etc.
      const credential = new DefaultAzureCredential();
      const redisScope = "https://redis.azure.com/.default";
    
      // Fetch a Microsoft Entra token to be used for authentication. This token will be used as the password.
      let accessToken = await credential.getToken(redisScope);
      console.log("access Token", accessToken);
    
      // Create redis client and connect to the Azure Cache for Redis over the TLS port using the access token as password.
      const cacheConnection = createClient({
        username: process.env.REDIS_SERVICE_PRINCIPAL_ID,
        password: accessToken.token,
        url: `redis://${process.env.AZURE_MANAGED_REDIS_HOST_NAME}:10000`,
        pingInterval: 100000,
        socket: { 
          tls: true,
          keepAlive: 0 
        },
      });
    
      cacheConnection.on("error", (err) => console.log("Redis Client Error", err));
      await cacheConnection.connect();
    
      // PING command
      console.log("\nCache command: PING");
      console.log("Cache response : " + await cacheConnection.ping());
    
      // SET
      console.log("\nCache command: SET Message");
      console.log("Cache response : " + await cacheConnection.set("Message",
          "Hello! The cache is working from Node.js!"));
    
      // GET
      console.log("\nCache command: GET Message");
      console.log("Cache response : " + await cacheConnection.get("Message"));
    
      // Client list, useful to see if connection list is growing...
      console.log("\nCache command: CLIENT LIST");
      console.log("Cache response : " + await cacheConnection.sendCommand(["CLIENT", "LIST"]));
    
      cacheConnection.disconnect();
    
      return "Done"
    }
    
    main().then((result) => console.log(result)).catch(ex => console.log(ex));
    
  4. Выполните сценарий с помощью Node.js.

    node redistest.js
    
  5. Выходные данные кода выглядят следующим образом.

    Cache command: PING
    Cache response : PONG
    
    Cache command: GET Message
    Cache response : Hello! The cache is working from Node.js!
    
    Cache command: SET Message
    Cache response : OK
    
    Cache command: GET Message
    Cache response : Hello! The cache is working from Node.js!
    
    Cache command: CLIENT LIST
    Cache response : id=10017364 addr=76.22.73.183:59380 fd=221 name= age=1 idle=0 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=26 qbuf-free=32742 argv-mem=10 obl=0 oll=0 omem=0 tot-mem=61466 ow=0 owmem=0 events=r cmd=client user=default numops=6
    
    Done
    

Создание примера приложения JavaScript с повторной проверку подлинности

Маркеры доступа к идентификатору Microsoft Entra имеют ограниченный срок жизни, в среднем 75 минут. Чтобы сохранить подключение к кэшу, необходимо обновить маркер. В этом примере показано, как это сделать с помощью JavaScript.

  1. Создайте файл скрипта с именем redistestreauth.js.

  2. Добавьте следующий пример JavaScript в файл.

     const { createClient } = require("redis");
     const { DefaultAzureCredential } = require("@azure/identity");
    
     async function returnPassword(credential) {
         const redisScope = "https://redis.azure.com/.default";
    
         // Fetch a Microsoft Entra token to be used for authentication. This token will be used as the password.
         return credential.getToken(redisScope);
     }
    
     async function main() {
       // Construct a Token Credential from Identity library, e.g. ClientSecretCredential / ClientCertificateCredential / ManagedIdentityCredential, etc.
       const credential = new DefaultAzureCredential();
       let accessToken = await returnPassword(credential);
    
       // Create redis client and connect to the Azure Cache for Redis over the TLS port using the access token as password.
       let cacheConnection = createClient({
         username: process.env.REDIS_SERVICE_PRINCIPAL_ID,
         password: accessToken.token,
         url: `redis://${process.env.AZURE_MANAGED_REDIS_HOST_NAME}:10000`,
         pingInterval: 100000,
         socket: { 
           tls: true,
           keepAlive: 0 
         },
       });
    
       cacheConnection.on("error", (err) => console.log("Redis Client Error", err));
       await cacheConnection.connect();
    
       for (let i = 0; i < 3; i++) {
         try {
             // PING command
             console.log("\nCache command: PING");
             console.log("Cache response : " + await cacheConnection.ping());
    
             // SET
             console.log("\nCache command: SET Message");
             console.log("Cache response : " + await cacheConnection.set("Message",
                 "Hello! The cache is working from Node.js!"));
    
             // GET
             console.log("\nCache command: GET Message");
             console.log("Cache response : " + await cacheConnection.get("Message"));
    
             // Client list, useful to see if connection list is growing...
             console.log("\nCache command: CLIENT LIST");
             console.log("Cache response : " + await cacheConnection.sendCommand(["CLIENT", "LIST"]));
           break;
         } catch (e) {
           console.log("error during redis get", e.toString());
           if ((accessToken.expiresOnTimestamp <= Date.now())|| (redis.status === "end" || "close") ) {
             await redis.disconnect();
             accessToken = await returnPassword(credential);
             cacheConnection = createClient({
               username: process.env.REDIS_SERVICE_PRINCIPAL_ID,
               password: accessToken.token,
               url: `redis://${process.env.AZURE_MANAGED_REDIS_HOST_NAME}:10000`,
               pingInterval: 100000,
               socket: {
                 tls: true,
                 keepAlive: 0
               },
             });
           }
         }
       }
     }
    
     main().then((result) => console.log(result)).catch(ex => console.log(ex));
    
  3. Выполните сценарий с помощью Node.js.

    node redistestreauth.js
    
  4. Выходные данные кода выглядят следующим образом.

     Cache command: PING
     Cache response : PONG
    
     Cache command: GET Message
     Cache response : Hello! The cache is working from Node.js!
    
     Cache command: SET Message
     Cache response : OK
    
     Cache command: GET Message
     Cache response : Hello! The cache is working from Node.js!
    
     Cache command: CLIENT LIST
     Cache response : id=10017364 addr=76.22.73.183:59380 fd=221 name= age=1 idle=0 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=26 qbuf-free=32742 argv-mem=10 obl=0 oll=0 omem=0 tot-mem=61466 ow=0 owmem=0 events=r cmd=client user=default numops=6
    
    

Замечание

Дополнительные примеры использования идентификатора Microsoft Entra для проверки подлинности в Redis с помощью библиотеки node-redis см . в этом репозитории GitHub.

Создание приложения Node.js для доступа к кэшу

Создайте приложение Node.js, использующее идентификатор Microsoft Entra или ключи доступа для подключения к Кэш Azure для Redis. Мы рекомендуем использовать идентификатор Microsoft Entra.

Использование проверки подлинности идентификатора Microsoft Entra в кэше

Кэши управляемых Redis в Azure по умолчанию имеют включенную аутентификацию Microsoft Entra.

  1. В портал Azure выберите кэш, в котором вы хотите использовать проверку подлинности на основе токена Microsoft Entra.

  2. Выберите проверку подлинности в меню "Ресурс".

  3. Выберите элемент и введите имя допустимого пользователя. По умолчанию, когда вы выбираете Сохранить, пользователю, которого вы вводите, автоматически назначается Политика доступа владельца данных. Вы также можете ввести управляемое удостоверение или служебный принципал, чтобы подключиться к экземпляру кэша.

    Снимок экрана: проверка подлинности, выбранная в меню ресурсов, и проверка проверки подлинности Microsoft Entra.

Сведения об использовании идентификатора Microsoft Entra с Azure CLI см. на справочных страницах для удостоверений.

Установка клиентской библиотеки удостоверений JavaScript Azure

Библиотека проверки подлинности Майкрософт (MSAL) позволяет получать маркеры безопасности от удостоверения Майкрософт для проверки подлинности пользователей. Существует клиентская библиотека удостоверений JavaScript Azure, которая использует MSAL для предоставления поддержки проверки подлинности маркеров. Установите эту библиотеку с помощью npm:

npm install @azure/identity

Создание нового приложения Node.js с помощью идентификатора Microsoft Entra

  1. Добавьте переменные среды для имени узла и идентификатора субъекта-службы, который является идентификатором объекта субъекта-службы Microsoft Entra ID или пользователя. В портал Azure найдите имя пользователя.

    set AZURE_CACHE_FOR_REDIS_HOST_NAME=contosoCache
    set REDIS_SERVICE_PRINCIPAL_ID=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
    
  2. Создайте новый файл сценария с именем redistest.js.

  3. Добавьте следующий пример JavaScript в файл. Этот код показывает, как подключиться к экземпляру кэша Redis для Azure, используя имя узла кэша и переменные среды ключа. Код также хранит строковое значение в кэше и извлекает его. Также выполняются команды PING и CLIENT LIST. Дополнительные примеры использования Redis с клиентом redis узла см. в статье https://redis.js.org/.

    const { createClient } = require("redis");
    const { DefaultAzureCredential } = require("@azure/identity");
    
    async function main() {
      // Construct a Token Credential from Identity library, e.g. ClientSecretCredential / ClientCertificateCredential / ManagedIdentityCredential, etc.
      const credential = new DefaultAzureCredential();
      const redisScope = "https://redis.azure.com/.default";
    
      // Fetch a Microsoft Entra token to be used for authentication. This token will be used as the password.
      let accessToken = await credential.getToken(redisScope);
      console.log("access Token", accessToken);
    
      // Create redis client and connect to the Azure Cache for Redis over the TLS port using the access token as password.
      const cacheConnection = createClient({
        username: process.env.REDIS_SERVICE_PRINCIPAL_ID,
        password: accessToken.token,
        url: `redis://${process.env.AZURE_CACHE_FOR_REDIS_HOST_NAME}:6380`,
        pingInterval: 100000,
        socket: { 
          tls: true,
          keepAlive: 0 
        },
      });
    
      cacheConnection.on("error", (err) => console.log("Redis Client Error", err));
      await cacheConnection.connect();
    
      // PING command
      console.log("\nCache command: PING");
      console.log("Cache response : " + await cacheConnection.ping());
    
      // SET
      console.log("\nCache command: SET Message");
      console.log("Cache response : " + await cacheConnection.set("Message",
          "Hello! The cache is working from Node.js!"));
    
      // GET
      console.log("\nCache command: GET Message");
      console.log("Cache response : " + await cacheConnection.get("Message"));
    
      // Client list, useful to see if connection list is growing...
      console.log("\nCache command: CLIENT LIST");
      console.log("Cache response : " + await cacheConnection.sendCommand(["CLIENT", "LIST"]));
    
      cacheConnection.disconnect();
    
      return "Done"
    }
    
    main().then((result) => console.log(result)).catch(ex => console.log(ex));
    
  4. Выполните сценарий с помощью Node.js.

    node redistest.js
    
  5. Выходные данные кода выглядят следующим образом.

    Cache command: PING
    Cache response : PONG
    
    Cache command: GET Message
    Cache response : Hello! The cache is working from Node.js!
    
    Cache command: SET Message
    Cache response : OK
    
    Cache command: GET Message
    Cache response : Hello! The cache is working from Node.js!
    
    Cache command: CLIENT LIST
    Cache response : id=10017364 addr=76.22.73.183:59380 fd=221 name= age=1 idle=0 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=26 qbuf-free=32742 argv-mem=10 obl=0 oll=0 omem=0 tot-mem=61466 ow=0 owmem=0 events=r cmd=client user=default numops=6
    
    Done
    

Создание примера приложения JavaScript с повторной проверку подлинности

Маркеры доступа к идентификатору Microsoft Entra имеют ограниченный срок жизни, в среднем 75 минут. Чтобы сохранить подключение к кэшу, необходимо обновить маркер. В этом примере показано, как это сделать с помощью JavaScript.

  1. Создайте файл скрипта с именем redistestreauth.js.

  2. Добавьте следующий пример JavaScript в файл.

     const { createClient } = require("redis");
     const { DefaultAzureCredential } = require("@azure/identity");
    
     async function returnPassword(credential) {
         const redisScope = "https://redis.azure.com/.default";
    
         // Fetch a Microsoft Entra token to be used for authentication. This token will be used as the password.
         return credential.getToken(redisScope);
     }
    
     async function main() {
       // Construct a Token Credential from Identity library, e.g. ClientSecretCredential / ClientCertificateCredential / ManagedIdentityCredential, etc.
       const credential = new DefaultAzureCredential();
       let accessToken = await returnPassword(credential);
    
       // Create redis client and connect to the Azure Cache for Redis over the TLS port using the access token as password.
       let cacheConnection = createClient({
         username: process.env.REDIS_SERVICE_PRINCIPAL_ID,
         password: accessToken.token,
         url: `redis://${process.env.AZURE_CACHE_FOR_REDIS_HOST_NAME}:6380`,
         pingInterval: 100000,
         socket: { 
           tls: true,
           keepAlive: 0 
         },
       });
    
       cacheConnection.on("error", (err) => console.log("Redis Client Error", err));
       await cacheConnection.connect();
    
       for (let i = 0; i < 3; i++) {
         try {
             // PING command
             console.log("\nCache command: PING");
             console.log("Cache response : " + await cacheConnection.ping());
    
             // SET
             console.log("\nCache command: SET Message");
             console.log("Cache response : " + await cacheConnection.set("Message",
                 "Hello! The cache is working from Node.js!"));
    
             // GET
             console.log("\nCache command: GET Message");
             console.log("Cache response : " + await cacheConnection.get("Message"));
    
             // Client list, useful to see if connection list is growing...
             console.log("\nCache command: CLIENT LIST");
             console.log("Cache response : " + await cacheConnection.sendCommand(["CLIENT", "LIST"]));
           break;
         } catch (e) {
           console.log("error during redis get", e.toString());
           if ((accessToken.expiresOnTimestamp <= Date.now())|| (redis.status === "end" || "close") ) {
             await redis.disconnect();
             accessToken = await returnPassword(credential);
             cacheConnection = createClient({
               username: process.env.REDIS_SERVICE_PRINCIPAL_ID,
               password: accessToken.token,
               url: `redis://${process.env.AZURE_CACHE_FOR_REDIS_HOST_NAME}:6380`,
               pingInterval: 100000,
               socket: {
                 tls: true,
                 keepAlive: 0
               },
             });
           }
         }
       }
     }
    
     main().then((result) => console.log(result)).catch(ex => console.log(ex));
    
  3. Выполните сценарий с помощью Node.js.

    node redistestreauth.js
    
  4. Выходные данные кода выглядят следующим образом.

     Cache command: PING
     Cache response : PONG
    
     Cache command: GET Message
     Cache response : Hello! The cache is working from Node.js!
    
     Cache command: SET Message
     Cache response : OK
    
     Cache command: GET Message
     Cache response : Hello! The cache is working from Node.js!
    
     Cache command: CLIENT LIST
     Cache response : id=10017364 addr=76.22.73.183:59380 fd=221 name= age=1 idle=0 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=26 qbuf-free=32742 argv-mem=10 obl=0 oll=0 omem=0 tot-mem=61466 ow=0 owmem=0 events=r cmd=client user=default numops=6
    
    

Замечание

Дополнительные примеры использования идентификатора Microsoft Entra для проверки подлинности в Redis с помощью библиотеки node-redis см . в этом репозитории GitHub.

Очистите ресурсы

Если вы хотите продолжить использовать ресурсы, созданные в этой статье, сохраните группу ресурсов.

В противном случае, если вы закончите работу с ресурсами, можно удалить созданную группу ресурсов Azure, чтобы избежать расходов.

Это важно

Удаление группы ресурсов — процесс необратимый. Группа ресурсов и все содержащиеся в ней ресурсы удаляются без возможности восстановления. Будьте внимательны, чтобы случайно не удалить не ту группу ресурсов или не те ресурсы. Если вы создали ресурсы внутри существующей группы ресурсов, содержащей ресурсы, которые необходимо сохранить, можно удалить каждый ресурс по отдельности, а не удалить группу ресурсов.

Удаление группы ресурсов

  1. Войдите на портал Azure и выберите группы ресурсов.

  2. Выберите группу ресурсов, которую вы хотите удалить.

    Если существует множество групп ресурсов, используйте фильтр для любого поля... введите имя группы ресурсов, созданной для этой статьи. Выберите группу ресурсов в списке результатов.

    Снимок экрана: список групп ресурсов для удаления в рабочей области.

  3. Выберите команду Удалить группу ресурсов.

  4. Вам предлагается подтвердить удаление группы ресурсов. Введите имя группы ресурсов, которую необходимо удалить, и щелкните Удалить.

    Снимок экрана: форма, для которой требуется имя ресурса для подтверждения удаления.

Через некоторое время группа ресурсов и все ее ресурсы будут удалены.

Получите пример кода

Получите краткое руководство по Node.js на GitHub.

Из этого быстрого руководства вы узнали, как использовать Управляемый Redis на платформе Azure или Azure кэш для Redis в приложении Node.js. Дополнительные сведения о предложениях Redis для Azure: