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

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

Необходимые компоненты

Примеры использования других клиентов Node.js см. в отдельных документах по клиентам Node.js для Redis.

Создание кэша

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

    Область навигации слева с выделенным элементом

  2. На странице Создание выберите Базы данных, а затем Кэш Azure для Redis.

    Страница

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

    Параметр Выберите значение Description
    Подписка Раскройте список и выберите нужную подписку. В этой подписке будет создан новый экземпляр кэша Redis для Azure.
    Группа ресурсов Раскройте список и выберите группу ресурсов или нажмите Создать и введите имя для новой группы ресурсов. Имя группы ресурсов, в которой будут созданы кэш и другие ресурсы. Поместив все ресурсы приложения в одну группу ресурсов, вы сможете легко управлять ими и/или удалить их вместе.
    DNS-имя Введите уникальное имя. Имя кэша должно быть строкой длиной от 1 до 63 символов и содержать только цифры, буквы и дефисы. Имя должно начинаться и заканчиваться цифрой или буквой и не может содержать более одного дефиса подряд. Имя узла экземпляра кэша <DNS-имя.redis.cache.windows.net>.
    Местонахождение Откройте список и выберите расположение. Выберите регион рядом с другими службами, используюющими кэш.
    Тип кэша В раскрывающемся списке выберите уровень. Уровень определяет размер, производительность кэша и доступные функции. Дополнительные сведения см. в обзоре предложения "Кэш Redis для Azure".
  4. Выберите вкладку Сети или нажмите кнопку Сети в нижней части страницы.

  5. На вкладке Сети выберите способ подключения.

  6. Нажмите кнопку "Далее" или нажмите кнопку "Далее" в нижней части страницы, чтобы просмотреть вкладку "Дополнительно".

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

    • Для кэшей "Базовый" или "Стандартный" переключите выбор порта, отличного от TLS. Вы также можете выбрать, нужно ли включить проверку подлинности Microsoft Entra.
    • Для кэша Premium настройте параметры для порта, отличного от TLS, кластеризация, управляемого удостоверения и сохраняемости данных. Вы также можете выбрать, нужно ли включить проверку подлинности Microsoft Entra.
  7. Выберите вкладку Next: Tags (Далее: теги) или нажмите в нижней части страницы кнопку Next: Tags (Далее: теги).

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

  9. Выберите Review + create (Просмотреть и создать). Вы будете перенаправлены на вкладку Проверка и создание, где Azure проверит вашу конфигурацию.

  10. Когда отобразится сообщение "Проверка пройдена" зеленого цвета, выберите Создать.

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

Получение имени узла, портов и ключей доступа с помощью портала Azure

Чтобы подключить сервер Кэша Azure для Redis, для клиента кэша необходимо указать имя узла, порты и ключ для кэша. Некоторые клиенты могут ссылаться на эти элементы с помощью незначительно различающихся имен. Вы можете получить имя узла, порты и ключи на портале Azure.

  • Чтобы получить ключи доступа, в области навигации кэша слева щелкните Ключи доступа.

    Ключи кэша Azure для Redis

  • Чтобы получить имя узла и порты, в области навигации кэша слева щелкните Свойства. Имя узла имеет вид <DNS-имя>.redis.cache.windows.net.

    Свойства Кэша Azure для Redis

Добавление переменных среды для ИМЯ_УЗЛА и Основного ключа доступа. Вместо включения конфиденциальных данных непосредственно в код используйте эти переменные из вашего кода.

set AZURE_CACHE_FOR_REDIS_HOST_NAME=contosoCache
set AZURE_CACHE_FOR_REDIS_ACCESS_KEY=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Подключение к кэшу

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

Создание нового приложения Node.js

  1. Создайте новый файл сценария с именем redistest.js.

  2. Используйте команду для установки пакета redis.

    `npm install redis`
    
  3. Добавьте следующий пример JavaScript в файл.

    const redis = require("redis");
    
    // Environment variables for cache
    const cacheHostName = process.env.AZURE_CACHE_FOR_REDIS_HOST_NAME;
    const cachePassword = process.env.AZURE_CACHE_FOR_REDIS_ACCESS_KEY;
    
    if(!cacheHostName) throw Error("AZURE_CACHE_FOR_REDIS_HOST_NAME is empty")
    if(!cachePassword) throw Error("AZURE_CACHE_FOR_REDIS_ACCESS_KEY is empty")
    
    async function testCache() {
    
        // Connection configuration
        const cacheConnection = redis.createClient({
            // rediss for TLS
            url: `rediss://${cacheHostName}:6380`,
            password: cachePassword
        });
    
        // Connect to Redis
        await cacheConnection.connect();
    
        // PING command
        console.log("\nCache command: PING");
        console.log("Cache response : " + await cacheConnection.ping());
    
        // GET
        console.log("\nCache command: GET Message");
        console.log("Cache response : " + await cacheConnection.get("Message"));
    
        // SET
        console.log("\nCache command: SET Message");
        console.log("Cache response : " + await cacheConnection.set("Message",
            "Hello! The cache is working from Node.js!"));
    
        // GET again
        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"]));
    
        // Disconnect
        cacheConnection.disconnect()
    
        return "Done"
    }
    
    testCache().then((result) => console.log(result)).catch(ex => console.log(ex));
    

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

  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
    

Очистка ресурсов

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

Внимание

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

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

  2. Введите имя группы ресурсов в текстовое поле Фильтровать по имени. В инструкциях в этой статье использовалась группа ресурсов с именем TestResources. В своей группе ресурсов в списке результатов выберите ..., а затем Удалить группу ресурсов.

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

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

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

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

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

Следующие шаги

Из этого краткого руководства вы узнали, как использовать кэш Redis для Azure в приложениях Node.js. Переходите к следующему краткому руководству по использованию кэша Azure для Redis в веб-приложениях ASP.NET.