Краткое руководство. Использование Кэш Azure для Redis в Java с клиентом Jedis Redis
В этом кратком руководстве описано, как использовать Кэш Azure для Redis с приложениями Java, использующими клиент Jedis. Ваш кэш выделен специально для вас, он безопасен и доступен из любого приложения в Azure.
Переход к коду на GitHub
Клонируйте репозиторий Краткое руководство для Java на GitHub.
Необходимые компоненты
- Подписка Azure — создайте бесплатную учетную запись.
- Apache Maven
Создание экземпляра Управляемого Redis (предварительная версия) Azure
Чтобы создать экземпляр Управляемого Redis (предварительная версия) Azure, войдите в портал Azure и выберите "Создать ресурс".
На новой странице в поле поиска введите Кэш Azure для Redis.
На странице Новый кэш Redis настройте параметры для нового кэша.
Параметр Выберите значение Description Подписка Раскройте список и выберите нужную подписку. Подписка, в которой создается новый экземпляр Управляемого Redis Azure. Группа ресурсов Раскройте список и выберите группу ресурсов или нажмите Создать и введите имя для новой группы ресурсов. Имя группы ресурсов, в которой будут созданы кэш и другие ресурсы. Поместив все ресурсы приложения в одну группу ресурсов, вы сможете легко управлять ими и/или удалить их вместе. DNS-имя Введите уникальное в пределах региона имя. Имя кэша должно быть строкой от 1 до 63 символов при сочетании с именем региона кэша, содержащим только цифры, буквы или дефисы. (Если имя кэша меньше 45 символов, оно должно работать во всех доступных регионах.) Имя должно начинаться и заканчиваться числом или буквой и не может содержать последовательные дефисы. Имя \<DNS name\>.\<Azure region\>.redis.azure.net
узла экземпляра кэша .Местонахождение Откройте список и выберите расположение. Управляемый Redis azure доступен в выбранных регионах Azure. Тип кэша В раскрывающемся списке выберите уровень производительности и размер кэша. Уровень определяет производительность экземпляра Redis, а размер кэша определяет память, доступную для хранения данных. Рекомендации по выбору подходящего уровня производительности см. в разделе "Выбор нужного уровня" Нажмите кнопку "Далее" и выберите общедоступную или частную конечную точку.
Нажмите кнопку Далее: Дополнительно.
Настройте все модули Redis, которые вы хотите добавить в экземпляр.
По умолчанию для нового управляемого кэша:
- Идентификатор Microsoft Entra включен.
- Проверка подлинности ключей доступа отключена по соображениям безопасности.
Внимание
Для оптимальной безопасности рекомендуется использовать идентификатор Microsoft Entra с управляемыми удостоверениями для авторизации запросов к кэшу, если это возможно. Авторизация с помощью идентификатора Microsoft Entra и управляемых удостоверений обеспечивает более высокую безопасность и удобство использования при авторизации ключа общего доступа. Дополнительные сведения об использовании управляемых удостоверений с кэшем см. в разделе "Использование идентификатора Microsoft Entra для проверки подлинности кэша".
Задайте для политикикластеризации значение Enterprise для некластеризованного кэша или в OSS для кластеризованного кэша. Дополнительные сведения о выборе политики кластеризации см. в статье "Политика кластера".
Если вы используете активную георепликацию, ее необходимо настроить во время создания. Дополнительные сведения см. в разделе "Настройка активной георепликации для экземпляров Управляемого Redis Azure".
Внимание
После создания не удается изменить политику кластеризации экземпляра Управляемого Redis (предварительная версия) Azure. Если вы используете RediSearch, требуется политика кластера Enterprise и
NoEviction
является единственной поддерживаемой политикой вытеснения.Внимание
Если вы используете этот экземпляр кэша в группе георепликации, политики вытеснения нельзя изменить после создания экземпляра. Перед созданием кэша необходимо знать политики вытеснения основных узлов. Дополнительные сведения о активной георепликации см. в разделе "Предварительные требования для активной георепликации".
Внимание
После создания экземпляра кэша нельзя изменять модули. Модули должны быть включены во время создания экземпляра Кэш Azure для Redis. После создания кэша невозможно включить настройку модуля.
Нажмите кнопку "Далее": теги и пропуск.
По завершении выберите Next: Отзыв и создание.
Проверьте параметры и выберите Создать.
Создание экземпляра Redis занимает несколько минут. Ход выполнения можно отслеживать на странице обзора Управляемого Redis в Azure. Когда Состояние примет значение Running (Выполняется), кэш будет готов к использованию.
Создание экземпляра кэша Azure для Redis
Чтобы создать кэш, войдите в портал Azure. В меню портала выберите "Создать ресурс".
В области "Начало работы" введите Кэш Azure для Redis в строке поиска. В результатах поиска найдите Кэш Azure для Redis и нажмите кнопку "Создать".
На панели "Новый кэш Redis" на вкладке "Основы" настройте следующие параметры для кэша:
Параметр Действие Description Подписка Выберите свою подписку Azure. Подписка, используемая для создания нового экземпляра Кэш Azure для Redis. Группа ресурсов Выберите группу ресурсов или щелкните Создать и введите новое имя группы ресурсов. Имя группы ресурсов, в которой создается кэш и другие ресурсы. Поместив все ресурсы приложения в одну группу ресурсов, вы сможете легко управлять ими и/или удалить их вместе. DNS-имя Введите уникальное имя. Имя кэша должно быть строкой от 1 до 63 символов, содержащих только цифры, буквы и дефисы. Имя должно начинаться и заканчиваться цифрой или буквой и не может содержать более одного дефиса подряд. Имя \<DNS name>.redis.cache.windows.net
узла экземпляра кэша .Местонахождение Выберите расположение. Регион Azure, расположенный рядом с другими службами, используюющими кэш. Номер SKU кэша Выберите номер SKU. Номер SKU определяет размер, производительность и параметры компонентов, доступные для кэша. Дополнительные сведения см. в статье Общие сведения о Кэше Azure для Redis. Объем кэша Выберите размер кэша. Дополнительные сведения см. в статье Общие сведения о Кэше Azure для Redis. Перейдите на вкладку "Сеть" или нажмите кнопку "Далее: сеть".
На вкладке "Сеть" выберите метод подключения, используемый для кэша.
Выберите вкладку "Дополнительно" или нажмите кнопку "Далее".
На панели "Дополнительно" проверьте или выберите метод проверки подлинности на основе следующих сведений:
- По умолчанию для нового кэша "Базовый", "Стандартный" или "Премиум" включена проверка подлинности Microsoft Entra Authentication, а проверка подлинности ключей доступа отключена.
- Для кэшей "Базовый" или "Стандартный" можно выбрать выбранный порт, отличный от TLS.
- Для кэшей уровня "Стандартный" и "Премиум" можно включить зоны доступности. После создания кэша невозможно отключить зоны доступности.
- Для кэша Premium настройте параметры для порта, не относяющегося к TLS, кластеризации, управляемому удостоверению и сохраняемости данных.
Внимание
Для оптимальной безопасности рекомендуется использовать идентификатор Microsoft Entra с управляемыми удостоверениями для авторизации запросов к кэшу, если это возможно. Авторизация с помощью идентификатора Microsoft Entra и управляемых удостоверений обеспечивает более высокую безопасность и удобство использования при авторизации ключа общего доступа. Дополнительные сведения об использовании управляемых удостоверений с кэшем см. в разделе "Использование идентификатора Microsoft Entra для проверки подлинности кэша".
(Необязательно) Выберите вкладку "Теги" или нажмите кнопку "Далее: теги".
(Необязательно) На вкладке "Теги" введите имя и значение тега, если вы хотите классифицировать ресурс кэша.
Нажмите кнопку Просмотреть и создать.
На вкладке "Проверка и создание " Azure автоматически проверяет конфигурацию.
Когда отобразится сообщение Проверка пройдена зеленого цвета, выберите Создать.
Развертывание нового кэша происходит в течение нескольких минут. Ход развертывания можно отслеживать на панели обзора Кэш Azure для Redis. Когда отображается состояние выполнения, кэш готов к использованию.
Получение имени узла, портов и ключей доступа с помощью портала Azure
Чтобы подключить сервер Кэша Azure для Redis, для клиента кэша необходимо указать имя узла, порты и ключ для кэша. Некоторые клиенты могут ссылаться на эти элементы с помощью незначительно различающихся имен. Вы можете получить имя узла, порты и ключи на портале Azure.
Чтобы получить имя узла и порты для кэша, выберите "Обзор " в меню "Ресурс ". Имя узла имеет форму
<DNS name>.redis.cache.windows.net
.Чтобы получить ключи доступа, выберите "Проверка подлинности " в меню "Ресурс ". Затем откройте вкладку "Ключи доступа".
Настройка рабочей среды
Ниже показано, как настроить рабочую среду для приложения Java. Вы можете пройти проверку подлинности с помощью Кэш Azure для Redis с помощью идентификатора Microsoft Entra (рекомендуется) или ключей доступа.
- Проверка подлинности идентификатора Microsoft Entra (рекомендуется)
- Проверка подлинности ключа доступа
export REDIS_CACHE_HOSTNAME=<your-host-name>.redis.cache.windows.net
export USER_NAME=<user-name>
export REDIS_CACHE_PORT=10000
export REDIS_CACHE_HOSTNAME=<your-host-name>.redis.cache.windows.net
export USER_NAME=<user-name>
export REDIS_CACHE_PORT=6380
Замените значения заполнителей следующими значениями:
<your-host-name>
: DNS-имя узла. Чтобы получить имя узла и порты для кэша, выберите "Обзор " в меню "Ресурс ". Имя узла имеет форму<DNS name>.redis.cache.windows.net
.<user-name>
: идентификатор объекта управляемого удостоверения или субъекта-службы.Вы можете получить имя пользователя, выполнив следующие действия.
Создание нового приложения Java
Используйте 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
Перейдите в новый каталог проекта redis-jedis-test .
Откройте файл pom.xml. В файле отображается зависимость для Jedis:
- Проверка подлинности идентификатора Microsoft Entra (рекомендуется)
- Проверка подлинности ключа доступа
<dependency> <groupId>com.azure</groupId> <artifactId>azure-identity</artifactId> <version>1.15.0</version> <!-- {x-version-update;com.azure:azure-identity;dependency} --> </dependency> <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>5.2.0</version> <!-- {x-version-update;redis.clients:jedis;external_dependency} --> </dependency>
Закройте файл pom.xml.
Откройте файл App.java и ознакомьтесь с представленным ниже кодом:
- Проверка подлинности идентификатора Microsoft Entra (рекомендуется)
- Проверка подлинности ключа доступа
package example.demo; import com.azure.identity.DefaultAzureCredential; import com.azure.identity.DefaultAzureCredentialBuilder; import com.azure.core.credential.TokenRequestContext; import redis.clients.jedis.DefaultJedisClientConfig; import redis.clients.jedis.Jedis; /** * Redis test * */ public class App { public static void main( String[] args ) { boolean useSsl = true; //Construct a Token Credential from Identity library, e.g. DefaultAzureCredential / ClientSecretCredential / Client CertificateCredential / ManagedIdentityCredential etc. DefaultAzureCredential defaultAzureCredential = new DefaultAzureCredentialBuilder().build(); // Fetch a Microsoft Entra token to be used for authentication. This token will be used as the password. String token = defaultAzureCredential .getToken(new TokenRequestContext() .addScopes("https://redis.azure.com/.default")).block().getToken(); String cacheHostname = System.getenv("REDIS_CACHE_HOSTNAME"); String username = System.getenv("USER_NAME"); int port = Integer.parseInt(System.getenv().getOrDefault("REDIS_CACHE_PORT", "6380")); // Connect to the Azure Cache for Redis over the TLS/SSL port using the key. Jedis jedis = new Jedis(cacheHostname, port, DefaultJedisClientConfig.builder() .password(token) // Microsoft Entra access token as password is required. .user(username) // Username is Required .ssl(useSsl) // SSL Connection is Required .build()); // Perform cache operations using the cache connection object... // 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")); // Get the client list, useful to see if connection list is growing... System.out.println( "\nCache Command : CLIENT LIST" ); System.out.println( "Cache Response : " + jedis.clientList()); jedis.close(); } }
Этот код показывает, как подключиться к экземпляру кэша Redis для Azure, используя имя узла кэша и переменные среды ключа. Код также хранит строковое значение в кэше и извлекает его. Также выполняются команды
PING
иCLIENT LIST
.Закройте файл App.java.
Сборка и запуск приложения
Выполните следующую команду Maven для построения и запуска приложения:
mvn compile exec:java -D exec.mainClass=example.demo.App
В следующих выходных данных видно, что Message
ключ ранее имел кэшированное значение. Оно было обновлено до нового значения с помощью jedis.set
. Кроме того, оно выполнило команды PING
и CLIENT LIST
.
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!
Cache Command : CLIENT LIST
Cache Response : id=777430 addr= :58989 fd=22 name= age=1 idle=0 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=32768 obl=0 oll=0 omem=0 ow=0 owmem=0 events=r cmd=client numops=6
Очистка ресурсов
Если вы планируете продолжить работу со следующим руководством, вы можете сохранить ресурсы, созданные в этом кратком руководстве, и повторно использовать их.
В противном случае, если вы закончили работу с примером приложения из краткого руководства, вы можете удалить ресурсы Azure, созданные в текущем руководстве, чтобы избежать ненужных расходов.
Внимание
Удаление группы ресурсов — необратимая операция, и все соответствующие ресурсы удаляются окончательно. Будьте внимательны, чтобы случайно не удалить не ту группу ресурсов или не те ресурсы. Если вы создали ресурсы для размещения этого примера в существующей группе ресурсов, содержащей ресурсы, которые необходимо сохранить, можно удалить каждый ресурс по отдельности, а не удалить группу ресурсов.
Войдите в портал Azure и выберитеГруппы ресурсов.
Введите имя группы ресурсов в текстовое поле Фильтровать по имени. Инструкции для этой статьи использовали группу ресурсов с именем
TestResources
. В группе ресурсов в списке результатов выберите "Тестовые ресурсы " и "Удалить группу ресурсов".Введите имя группы ресурсов, чтобы подтвердить удаление, а затем нажмите кнопку "Удалить".
Через некоторое время группа ресурсов и все ее ресурсы будут удалены.
Следующие шаги
Из этого краткого руководства вы узнали, как использовать кэш Redis для Azure в приложениях Java. Переходите к следующему краткому руководству по использованию кэша Azure для Redis в веб-приложениях ASP.NET.