Использование кэша Redis в Azure в Spring
Кэш Azure для Redis предоставляет хранилище данных в памяти на базе программного обеспечения Redis. Redis повышает производительность и масштабируемость приложения, использующего внутренние хранилища данных.
В этом руководстве показано, как использовать кэш Redis для хранения и извлечения данных в приложении Spring Boot.
В этом руководстве мы рассмотрим два метода проверки подлинности: проверку подлинности Microsoft Entra и проверку подлинности Redis. На вкладке "Без пароля" показана проверка подлинности Microsoft Entra, а на вкладке "Пароль" отображается проверка подлинности Redis.
Проверка подлинности Microsoft Entra — это механизм подключения к Кэш Azure для Redis с помощью удостоверений, определенных в идентификаторе Microsoft Entra. С помощью проверки подлинности Microsoft Entra можно управлять удостоверениями пользователей базы данных и другими службы Майкрософт в центральном расположении, что упрощает управление разрешениями.
Проверка подлинности Redis использует пароли в Redis. Если вы решили использовать пароли в качестве учетных данных, необходимо самостоятельно управлять паролями.
Необходимые компоненты
Подписка Azure — создайте бесплатную учетную запись.
Пакет средств разработки Java (JDK) версии 17 или более поздней.
Apache Maven версии 3.0 или более поздней.
cURL или подобная служебная HTTP-программа, с помощью которой можно протестировать функциональные возможности.
Экземпляр кэша Redis. Если у вас нет одного, см . краткое руководство. Создание кэша Redis с открытым исходным кодом.
Приложение Spring Boot. Если у вас его нет, создайте проект Maven с помощью Spring Initializr. Обязательно выберите Проект Maven и в разделе "Зависимости" добавьте зависимости Spring Web и Spring Data Reactive Redis , а затем выберите Java версии 8 или более поздней.
Кэширование данных в Кэш Azure для Redis
С помощью экземпляра Кэш Azure для Redis можно кэшировать данные с помощью Spring Cloud Azure.
Чтобы установить Spring Cloud Azure Starter Data Redis с модулем Lettuce, добавьте следующие зависимости в файл pom.xml :
<dependencies>
<dependency>
<groupId>com.azure.spring</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>com.azure.spring</groupId>
<artifactId>spring-cloud-azure-starter-data-redis-lettuce</artifactId>
</dependency>
<dependency>
<groupId>com.azure.spring</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.azure.spring</groupId>
<artifactId>spring-cloud-azure-dependencies</artifactId>
<version>5.17.1</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
Примечание.
Этот счет материалов (BOM) должен быть настроен в <dependencyManagement>
разделе pom.xml файла. Эта конфигурация гарантирует, что все зависимости Azure Spring Cloud используют одну и ту же версию. Дополнительные сведения о версии, используемой для этого BOM, см. в статье "Какая версия Spring Cloud Azure должна использоваться".
Добавление кода приложения
Чтобы использовать кэш Redis для хранения и извлечения данных, настройте приложение, выполнив следующие действия.
Настройте учетные данные кэша Redis в файле конфигурации application.properties , как показано в следующем примере.
spring.data.redis.host=<your-redis-name>.redis.cache.windows.net spring.data.redis.port=6380 spring.data.redis.username=<your-redis-username> spring.data.redis.ssl.enabled=true spring.data.redis.azure.passwordless-enabled=true
Примечание.
Чтобы получить значение
username
, следуйте инструкциям в разделе "Включить проверку подлинности идентификатора Microsoft Entra" в разделе "Использование идентификатора Microsoft Entra для проверки подлинности кэша" и скопируйте значение имени пользователя.Измените файл класса запуска, чтобы отобразить следующее содержимое. Этот код хранит и извлекает данные.
import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.CommandLineRunner; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.data.redis.core.ValueOperations; @SpringBootApplication public class DemoCacheApplication implements CommandLineRunner { private static final Logger LOGGER = LoggerFactory.getLogger(DemoCacheApplication.class); @Autowired private StringRedisTemplate template; public static void main(String[] args) { SpringApplication.run(DemoCacheApplication.class, args); } @Override public void run(String... args) { ValueOperations<String, String> ops = this.template.opsForValue(); String key = "testkey"; if(!this.template.hasKey(key)){ ops.set(key, "Hello World"); LOGGER.info("Add a key is done"); } LOGGER.info("Return the value from the cache: {}", ops.get(key)); } }
Затем запустите приложение. Приложение извлекает данные из кэша Redis. Вы должны увидеть журналы, аналогичные следующему примеру:
Add a key is done
Return the value from the cache: Hello World
Развертывание в Azure Spring Apps
Теперь, когда у вас есть приложение Spring Boot, работающее локально, пришло время переместить его в рабочую среду. Azure Spring Apps упрощает развертывание приложений Spring Boot в Azure без каких-либо изменений кода. Эта служба управляет инфраструктурой приложений Spring, благодаря чему разработчики могут сосредоточиться на коде. Azure Spring Apps обеспечивает управление жизненным циклом за счет комплексного мониторинга и диагностики, управления конфигурацией, обнаружения служб, интеграции CI/CD, выполнения сине-зеленых развертываний и прочего. Сведения о развертывании приложения в Azure Spring Apps см. в статье "Развертывание первого приложения в Azure Spring Apps".
Следующие шаги
Дополнительные сведения о Spring и Azure см. в центре документации об использовании Spring в Azure.