Spring에서 Azure Redis Cache 사용
Azure Cache for Redis Redis 소프트웨어를 기반으로 메모리 내 데이터 저장소를 제공합니다. Redis 백 엔드 데이터 저장소를 많이 사용하는 애플리케이션의 성능과 확장성을 향상시킵니다.
이 자습서에서는 Redis 캐시를 사용하여 Spring Boot 애플리케이션에서 데이터를 저장하고 검색하는 방법을 보여 줍니다.
이 자습서에는 Microsoft Entra 인증 및 Redis 인증이라는 두 가지 인증 방법이 포함되어 있습니다. 암호 없는 탭에는 Microsoft Entra 인증이 표시되고 암호 탭에는 Redis 인증이 표시됩니다.
Microsoft Entra 인증은 Microsoft Entra ID에 정의된 ID를 사용하여 Azure Cache for Redis에 연결하는 메커니즘입니다. Microsoft Entra 인증을 사용하면 중앙 위치에서 데이터베이스 사용자 ID 및 기타 Microsoft 서비스를 관리할 수 있으므로 권한 관리가 간소화됩니다.
Redis 인증은 Redis에서 암호를 사용합니다. 암호를 자격 증명으로 사용하도록 선택하는 경우 암호를 직접 관리해야 합니다.
필수 구성 요소
Azure 구독 - 하나를 무료로 만들 수있습니다.
JDK(Java Development Kit) 버전 17 이상
Apache Maven버전 3.0 이상.
cURL 또는 유사한 HTTP 유틸리티를 사용하여 기능을 테스트합니다.
Redis 캐시 인스턴스입니다. 하나 없으면, 빠른 시작 가이드를 참조하여 오픈 소스 Redis 캐시를 생성하십시오.
Spring Boot 애플리케이션입니다. 만약 없다면 Spring Initializr를 사용하여 Maven 프로젝트를 만드세요. Maven 프로젝트
를 선택한 다음, 종속성 아래에Spring Web 및Spring Data Reactive Redis 종속성을 추가하고, Java 버전 8 이상을 선택합니다.
Azure Cache for Redis에 데이터 캐싱
Azure Cache for Redis 인스턴스를 사용하면 Spring Cloud Azure를 사용하여 데이터를 캐시할 수 있습니다.
양상추 모듈을 사용하여 Spring Cloud Azure Starter Data Redis를 설치하려면 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>org.springframework.boot</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.20.0</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
메모
이 BOM(Bill of Material)은 pom.xml 파일의 <dependencyManagement>
섹션에서 구성해야 합니다. 이 구성은 모든 Spring Cloud Azure 종속성이 동일한 버전을 사용하게 합니다. 이 BOM에 사용되는 버전에 대한 자세한 내용은 사용해야 하는 Spring Cloud Azure 버전을 참조하세요.
애플리케이션 코딩
Redis 캐시를 사용하여 데이터를 저장하고 검색하려면 다음 단계를 사용하여 애플리케이션을 구성합니다.
다음 예제와 같이 application.properties 구성 파일에서 Redis 캐시 자격 증명을 구성합니다.
spring.data.redis.host=<your-redis-name>.redis.cache.windows.net spring.data.redis.port=10000 spring.data.redis.username=<your-redis-username> spring.data.redis.ssl.enabled=true spring.data.redis.azure.passwordless-enabled=true
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
메모
값을 가져오려면 캐시 인증Microsoft Entra ID를 사용하고 사용자 이름 값을 복사하기캐시 섹션에서 Microsoft Entra ID 인증 사용 지침에 따릅니다. 시작 클래스 파일을 편집하여 다음 콘텐츠를 표시합니다. 이 코드는 데이터를 저장하고 검색합니다.
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 on Azure 설명서 센터를 계속 진행하세요.
Spring 개발자를 위한 Azure Spring Cloud Azure Cache for Redis 샘플