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


Краткое руководство: Использование Azure Managed Redis на Java с клиентом Jedis Redis.

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

Переход к коду на GitHub

Клонируйте репозиторий Краткое руководство для Java на GitHub.

Предпосылки

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

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

  2. На странице "Создание ресурса" введите Azure Managed Redis в поле поиска.

  3. Выберите плитку Azure Managed Redis и нажмите кнопку "Создать".

  4. На панели создания экземпляра управляемого Redis на Azure настройте параметры нового кэша на вкладке Основные.

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

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

    Это важно

    Все уровни памяти, использующие более 350 ГБ хранилища, находятся в общедоступной предварительной версии, включая оптимизированные для памяти M500 и выше; сбалансированные B500 и выше; и вычислительно оптимизированные X500 и выше. Все эти уровни и выше находятся в общедоступной предварительной версии.

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

  5. Нажмите кнопку "Далее" и выберите "Отключить общедоступный доступ" и использовать частный доступ иливключить общедоступный доступ из всех сетей.

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

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

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

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

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

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

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

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

    Это важно

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

    Это важно

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

    Это важно

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

    Это важно

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

  8. Выберите «Далее: Теги» и пропустите.

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

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

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

Настройка рабочей среды

Ниже показано, как настроить рабочую среду для приложения Java.

export REDIS_CACHE_HOSTNAME=<your-host-name>.redis.cache.windows.net
export REDIS_CACHE_PORT=10000

Замените заполнители следующими значениями:

  • <your-host-name>: DNS-имя узла. Чтобы получить имя узла и порты для кэша, выберите "Обзор " в меню "Ресурс ". Имя узла имеет форму <DNS name>.redis.cache.windows.net.

    Снимок экрана, показывающий свойства Azure Cache для Redis.

  • <your-client-id>: Идентификатор клиента вашей регистрации приложения Azure AD.

  • <your-client-secret>: секретный ключ клиента для регистрации приложения в Azure AD.

  • <your-tenant-id>: идентификатор клиента Azure Active Directory.

    Замечание

    В приведенном выше примере используется проверка подлинности секрета клиента. Вы также можете настроить библиотеку redis-authx-entraid для использования других методов проверки подлинности, таких как управляемое удостоверение или сертификат клиента, изменив EntraIDTokenAuthConfigBuilder конфигурацию в коде.

Создание нового приложения Java

  1. Используйте maven для создания нового приложения быстрого запуска:

    mvn archetype:generate \
        -DarchetypeGroupId=org.apache.maven.archetypes \
        -DarchetypeArtifactId=maven-archetype-quickstart \
        -DarchetypeVersion=1.3 \
        -DinteractiveMode=false \
        -DgroupId=example.demo \
        -DartifactId=redis-jedis-test \
        -Dversion=1.0
    
  2. Перейдите в новый каталог проекта redis-jedis-test .

  3. Откройте файл pom.xml. В файле отображается зависимость для Jedis:

    Замечание

    Корпорация Майкрософт вступила в партнерство с Redis, Inc. В рамках этой совместной работы поддержка проверки подлинности Идентификатора Microsoft Entra была перенесена из пакета SDK Azure в расширения Redis Entra ID. Новая redis-authx-entraid библиотека предоставляет расширенные возможности аутентификации и является рекомендуемым подходом для аутентификации Microsoft Entra ID через Azure Managed Redis.

    <dependency>
        <groupId>redis.clients.authentication</groupId>
        <artifactId>redis-authx-entraid</artifactId>
        <version>0.1.1-beta2</version>
    </dependency>
    
    <dependency>
        <groupId>redis.clients</groupId>
        <artifactId>jedis</artifactId>
        <version>6.0.0</version> 
    </dependency>
    
  4. Закройте файл pom.xml.

  5. Откройте файл App.java и ознакомьтесь с представленным ниже кодом:

    package example.demo;
    
    import com.azure.identity.DefaultAzureCredentialBuilder;
    import redis.clients.authentication.core.TokenAuthConfig;
    import redis.clients.authentication.entraid.AzureTokenAuthConfigBuilder;
    import redis.clients.jedis.DefaultJedisClientConfig;
    import redis.clients.jedis.HostAndPort;
    import redis.clients.jedis.UnifiedJedis;
    import redis.clients.jedis.authentication.AuthXManager;
    
    import java.util.Set;
    
    /**
    * Redis test with Microsoft Entra ID authentication using redis-authx-entraid
    * For more information about Redis authentication extensions, see:
    * https://redis.io/docs/latest/develop/clients/jedis/amr/
    *
    */
    public class App
    {
        public static void main( String[] args )
        {
            String REDIS_CACHE_HOSTNAME = System.getenv("REDIS_CACHE_HOSTNAME");
            int REDIS_PORT = Integer.parseInt(System.getenv().getOrDefault("REDIS_CACHE_PORT", "10000"));
            String SCOPES = "https://redis.azure.com/.default"; // The scope for Azure Managed Redis
    
            // Build TokenAuthConfig for Microsoft Entra ID authentication
            TokenAuthConfig tokenAuthConfig = AzureTokenAuthConfigBuilder.builder()
                    .defaultAzureCredential(new DefaultAzureCredentialBuilder().build())
                    .scopes(Set.of(SCOPES))
                    .tokenRequestExecTimeoutInMs(2000)
                    .build();
    
            DefaultJedisClientConfig config = DefaultJedisClientConfig.builder()
                    .authXManager(new AuthXManager(tokenAuthConfig))
                    .ssl(true)
                    .build();
    
            UnifiedJedis jedis = new UnifiedJedis(
                    new HostAndPort(REDIS_CACHE_HOSTNAME, REDIS_PORT),
                    config);
    
            // Test the connection
            System.out.println(String.format("Database size is %d", jedis.dbSize()));
    
            // Simple PING command
            System.out.println( "\nCache Command  : Ping" );
            System.out.println( "Cache Response : " + jedis.ping());
    
            // Simple get and put of integral data types into the cache
            System.out.println( "\nCache Command  : GET Message" );
            System.out.println( "Cache Response : " + jedis.get("Message"));
    
            System.out.println( "\nCache Command  : SET Message" );
            System.out.println( "Cache Response : " + jedis.set("Message", "Hello! The cache is working from Java!"));
    
            // Demonstrate "SET Message" executed as expected...
            System.out.println( "\nCache Command  : GET Message" );
            System.out.println( "Cache Response : " + jedis.get("Message"));
    
            jedis.close();
        }
    }
    

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

  6. Закройте файл App.java.

Создание и запуск приложения

Выполните следующую команду Maven для построения и запуска приложения:

mvn compile exec:java -D exec.mainClass=example.demo.App

В следующих выходных данных видно, что Message ключ ранее имел кэшированное значение. Оно было обновлено до нового значения с помощью jedis.set. Приложение также выполнило команды PING.

Cache Command  : Ping
Cache Response : PONG

Cache Command  : GET Message
Cache Response : Hello! The cache is working from Java!

Cache Command  : SET Message
Cache Response : OK

Cache Command  : GET Message
Cache Response : Hello! The cache is working from Java!

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

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

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

Это важно

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

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

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

    Снимок экрана: портал Azure, на котором показана страница группы ресурсов с выделенной кнопкой

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

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

Дальнейшие шаги

Из этого краткого руководства вы узнали, как использовать Управляемый Redis Azure из приложения Java.