다음을 통해 공유


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 WebSpring 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>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(청구서)은 pom.xml 파일의 섹션에서 구성 <dependencyManagement> 해야 합니다. 이 구성은 모든 Spring Cloud Azure 종속성이 동일한 버전을 사용하게 합니다. 이 BOM에 사용되는 버전에 대한 자세한 내용은 어떤 버전의 Spring Cloud Azure를 사용해야 하는지를 참조하세요.

애플리케이션 코딩

Redis 캐시를 사용하여 데이터를 저장하고 검색하려면 다음 단계를 사용하여 애플리케이션을 구성합니다.

  1. 다음 예제와 같이 application.properties 구성 파일에서 Redis 캐시 자격 증명을 구성합니다.

    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
    

    참고 항목

    값을 가져오려면 캐시 인증에 usernameMicrosoft Entra ID 사용의 캐시 섹션에서 Microsoft Entra ID 인증 사용 섹션의 지침을 따르고 사용자 이름 값을 복사합니다.

  2. 시작 클래스 파일을 편집하여 다음 콘텐츠를 표시합니다. 이 코드는 데이터를 저장하고 검색합니다.

    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에 대한 자세한 사항은 Azure의 Spring 설명서 센터를 참조합니다.